2010-11-06 73 views
3

奇怪的問題。我有以下代碼:jQuery append()只能正常工作

// remove template row from DOM and store in variable 

var $addDegreeRow = $('.addDegreeRow').remove(); 
$('#addDegreeLink').click(function (ev) { 
    ev.preventDefault(); 
    $('.degreeSection').append($addDegreeRow); 
}); 

我從DOM中選擇元素,刪除它,並選擇$addDegreeRow保留其內容。然後,我將一個單擊事件分配給頁面上的鏈接,將存儲的選擇器附加到頁面上的現有div上。

我第一次通過點擊事件,一切正常。但第二次沒有任何東西會被追加。如果我查看螢火蟲中的HTML,則每次執行點擊時,.degreeSection div都會突出顯示,即使沒有其他任何內容正在追加。這就像jQuery覆蓋舊的$addDegreeRow追加新的,而不是隻增加另一個。

有沒有人遇到過這個問題?謝謝。

回答

11

您正在一次又一次追加相同的元素。如果您需要該元素的副本,則必須先克隆()。

+1

so'.append($ addDegreeRow.clone())'? – 2010-11-06 19:03:19

+0

啊!你說得對,那是有效的。謝謝。 – 2010-11-06 19:05:16

+0

@Mega Matt,如果這個答案適合你,並且很有幫助,或許你可以考慮接受它? – 2010-11-06 21:41:13