2010-11-06 75 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