我创建了一个情况,在倒数后elements
gett appendto
和ul
,但我不希望现有的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{
}
}
答案 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,你可以通过搜索找到它。