jquery附加元素但不会停止循环

时间:2012-05-22 06:36:40

标签: jquery append

我创建了一个情况,在倒数后elements gett appendtoul,但我不希望现有的li被替换或重复,我只想要id的新li。我已经尝试清空整个ul并用新的1或2和旧的9-100替换它,但这需要很长时间取决于ul中有多少元素,这会导致负载滞后...所以我只想要单一的关于我如何调整代码的新想法?

jquery的:

    $.ajax({
            url: "morphelo/splash.php",
            type: "POST",
            data: "x=int",
            datatype: "html",
            success: function(data){
                var Data = $.parseJSON(data);

                var Clus = Data.clu;
                console.log(Clus);
                var cl = Clus.length; 
                var aci = new Array(); var i = 0;

                if(cl > 0){
                    var clu = $('.clu_holder').children('.clu'); // every clutch li
                    $.each(clu,function(x,y){
                        var clutchid = $(this).attr('id');

                        $.each(Clus,function(){
                            if(this.ckey == clutchid){
                                // dont worrie about me
                            }else{
                                // put me in coach
                                var newLi = '<li class="clu" id="'+this.ckey+'">clu</li>';
                                $(newLi).appendTo('.clu_holder').fadeIn();
                            }
                        });

                    });


                }else{

                }
} 

1 个答案:

答案 0 :(得分:0)

我认为你的问题是你在循环中做了一个循环。我想我会做这样的事情。我没有测试过,这只是一个快速的模拟。

if(cl > 0){
   var holder = $('.clu_holder');
   $.each(Clus,function(){
       if(holder.find("#"+ this.ckey).length == 0){
           var newLi = '<li class="clu" id="'+this.ckey+'">clu</li>';
            holder.append(newLi).fadeIn();
        }
    });
 }

我改变的是:

保存holder元素,这样您就可以使用它来附加元素而无需每次都搜索它。

只循环1个集合,并且由于你在元素上有id,你可以通过搜索找到它。