JQuery中的detach方法是否实际上破坏了DOM中的节点?例如,如果我这样做:
$("#myDiv").detach().appendTo($("#container"));
是否会破坏原始#myDiv
节点,并创建一个要追加#container
的新节点?或者它将是同一个节点?
使用destroy,我的意思是当我执行detach
时,释放存储在浏览器中的节点的内存位置。或者JQuery会保存节点的引用(而不是副本),防止它被释放,以后可以重新附加吗?
答案 0 :(得分:2)
$("#myDiv")
对象将属性0
保留为相关元素,即使在分离它之后也是如此。当你追加时,你真的附加了相同的元素,它不是一个新元素。
您可以通过注意子元素也会再次恢复来检查。请注意,remove
函数具有相同的行为,期望它清除链接到元素及其子元素的jQuery数据。您还可以通过发出console.dir($("#myDiv").detach())
来查看您的元素。