解决方案 »

  1.   

    循环中 输出 $('._ui_').html() 看下就知道了,选中的是一组元素 
      

  2.   

     //通过jquery 对象添加 不会造成重复输出,为什么?
                        ui.append('ui by obj'); 
                        //通过DOM添加 造成重复输出 为什么?
                        $('._ui_').append('<br>ui by dom'); ui是一个对象 而 $('._ui_')是一个集合(多个对象)
      

  3.   


    能说清楚点吗?下边是你的代码
                function test() {
                    test2(5);
                }            function test2(options) {
                    var ui = $('<div>').attr('class', '_ui_').html('ui->');//这里是给所有的div添加class:_ui_
                    if ($('._ui_').length === 0) {
                        ui.appendTo('body');
                    }
                    if (options > 0) {
                        //通过jquery 对象添加 不会造成重复输出
                        ui.append('ui by obj'); //这里的ui是一个对象
                        //通过DOM添加 造成重复输出
                        $('._ui_').append('<br>ui by dom'); //这里的$('._ui_')是所有的class是_ui_的
                    }
                    /*
                     //下面两个内容始终一样,并以[]表示为对象,说明指向同一对象
                     console.log($('._box_'));
                     console.log(boxui);
                     */            }
    如果添加的div是第一次就都是一个,第二次 $('._ui_')就是两个......可以加debug监控一下
      

  4.   


    能说清楚点吗?下边是你的代码
                function test() {
                    test2(5);
                }            function test2(options) {
                    var ui = $('<div>').attr('class', '_ui_').html('ui->');//这里是给所有的div添加class:_ui_
                    if ($('._ui_').length === 0) {
                        ui.appendTo('body');
                    }
                    if (options > 0) {
                        //通过jquery 对象添加 不会造成重复输出
                        ui.append('ui by obj'); //这里的ui是一个对象
                        //通过DOM添加 造成重复输出
                        $('._ui_').append('<br>ui by dom'); //这里的$('._ui_')是所有的class是_ui_的
                    }
                    /*
                     //下面两个内容始终一样,并以[]表示为对象,说明指向同一对象
                     console.log($('._box_'));
                     console.log(boxui);
                     */            }
    如果添加的div是第一次就都是一个,第二次 $('._ui_')就是两个......可以加debug监控一下
    你的解释可能不正确;
    按照你的说法:如果添加的div是第一次就都是一个,第二次 $('._ui_')就是两个......
    那么 $('._ui_').length 将会随着test2调用的次数递增;而事实上并没有;
    麻烦你有空运行一下再说好吧。谢谢。
      

  5.   


    能说清楚点吗?下边是你的代码
                function test() {
                    test2(5);
                }            function test2(options) {
                    var ui = $('<div>').attr('class', '_ui_').html('ui->');//这里是给所有的div添加class:_ui_
                    if ($('._ui_').length === 0) {
                        ui.appendTo('body');
                    }
                    if (options > 0) {
                        //通过jquery 对象添加 不会造成重复输出
                        ui.append('ui by obj'); //这里的ui是一个对象
                        //通过DOM添加 造成重复输出
                        $('._ui_').append('<br>ui by dom'); //这里的$('._ui_')是所有的class是_ui_的
                    }
                    /*
                     //下面两个内容始终一样,并以[]表示为对象,说明指向同一对象
                     console.log($('._box_'));
                     console.log(boxui);
                     */            }
    如果添加的div是第一次就都是一个,第二次 $('._ui_')就是两个......可以加debug监控一下
    你的解释可能不正确;
    按照你的说法:如果添加的div是第一次就都是一个,第二次 $('._ui_')就是两个......
    那么 $('._ui_').length 将会随着test2调用的次数递增;而事实上并没有;
    麻烦你有空运行一下再说好吧。谢谢。
    是你理解错了好不,不是运行几次是几个 ,是div有几个  $('._ui_')就是几个