2011-06-13 160 views
0

我有一個關於循環內克隆的問題,實際上有兩個問題,我只是試圖找到最好的方法,下面是我的代碼。循環內的jquery克隆?

$.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

* 「另外一個」 *?這是否意味着你的'data.customers'包含的客戶比你想追加的客戶多? (另外,顯示數據的外觀) – Tomalak 2011-06-13 10:25:00

+0

沒有它有適量的客戶,但我只想克隆它們是否是另一個克隆的循環。當它完成循環時,它們將永遠是一個額外克隆的.customer,其中包含第一個.customer名稱的克隆 – Ian 2011-06-13 10:30:31

回答

1

你可以這樣做:

首先,在你的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); 
}); 
+0

我實際上並不需要我需要的模板類來移動克隆並將其存儲在變量中,以便您代碼指出我在正確的地方反正,謝謝 – Ian 2011-06-13 11:15:25

+0

其實我做了,謝謝代碼的作品 – Ian 2011-06-13 11:20:21