在jQuery中克隆(true)+ remove()与detach()

时间:2010-02-16 18:21:34

标签: jquery detach

的用法
e = elem.clone(true);
elem.remove();

相同
e = elem.detach();

如果稍后我将其附加

e.appendTo($("#someDiv"));

在jQuery 1.4中? clone(true)方法是否会使用detach()来保留所有内容?

2 个答案:

答案 0 :(得分:2)

相同但不同:如果你只是克隆一个节点而没有将它分配给一个变量,你将失去复制节点的引用,因此有机会获得它的事件处理程序和其他数据(不是真的,但它是一个PITA )。

修改
是的,持有对克隆元素的引用,你有一个精确的副本(但请注意真正的参数),以后可以附加到DOM。

答案 1 :(得分:0)

我读它的方式,这些将是等效的方法:

来自documentation for detach()

  

.detach()方法与。相同   .remove(),除了.detach()保留   所有与jQuery相关的jQuery数据   删除元素。这个方法是   删除元素时有用   稍后重新插入DOM   时间。

来自documentation for clone()

.clone([withDataAndEvents])

  

withDataAndEvents 布尔值指示   是否应该使用事件处理程序   与元素一起复制。作为   将复制jQuery 1.4元素数据   同样。