关于jquery-cloned元素的简短问题。 很长一段时间,我以为我必须在插入克隆的元素(到DOM树)后重新进行jqueryfy克隆,但是下面的代码可以正常工作。
HTML
<div id="test">test<"/div>
<button id="btn">push</div>
JavaScript
var $clone = $('#test').clone(),
$btn = $('#btn');
$clone.prop('id','clone').appendTo('body');
// I thought this is necessary but it's not.
// var $clone = $('#clone');
$btn.on('click',function(){
$clone.toggleClass('someclass');
});
那么有人可以告诉我为什么吗?
答案 0 :(得分:0)
实际上,如果您会看到jQuery .clone()
method的文档,则此方法会创建匹配元素集的深层副本。
因此,当您克隆元素时,clone
方法将返回元素的副本。即使再次将其添加到主体中,复制元素的引用仍保留在变量中。因此,您无需再次获取它即可对其进行操作。
您可以了解:
var $clone = $('#test').clone();
// you created the copy of the $('#test') element and held it in $clone variable
$clone.attr('id','clone').appendTo('body'); // you should prefer prop() instead
// you changed it's id but it is still held in $clone
$clone.toggleClass('someclass');
// and you can toggle it's class as it is still held in $clone variable