0

我创造了一种情况,elements倒计时后得到appendto一个ul,但我不希望现有li的被替换或复制,我只想要新的 li 的 id。我已经尝试清空整个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{

                }
} 
4

1 回答 1

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,因此可以通过搜索找到它。

于 2012-05-22T07:38:56.293 回答