我有一个关于循环内克隆的问题,实际上有两个问题,我只是想找到解决它的最佳方法,下面是我的代码。
$.each(data.customers,function(key, value){
$('.customer').find('label').eq(0).text( value.name );
$('.customer').eq(0).clone().appendTo('#customers');
});
data.customers是json格式,所以我不能对它做一个.length。我的问题是jquery总是会在#customers的末尾追加一个克隆元素。如果他们是json集合中的另一个,我只需要追加。我能想到的唯一方法是将数组的计数返回为json,并检查键是否等于它似乎是荒谬的。什么是处理循环时克隆元素的最佳方法?
任何人都可以提供帮助。
答案 0 :(得分:2)
你可以这样做:
首先,为HTML中的客户创建一个特定的“克隆模板”,通过CSS(.template {display: none;}
)使其不可见。
然后,在你的循环中:
$.each(data.customers, function (key, value) {
var $newCustomer = $('#customers .customer.template').clone();
$newCustomer.removeClass("template").find('label:first').text( value.name );
$('#customers').append( $newCustomer );
});