我有一个与 jQuery 相关的问题 .remove()
方法。考虑这段代码:
var x;
$("#btn1").click(function() {
x = $("p").remove();
});
$("#btn2").click(function() {
$("body").prepend(x);
});
如果在单击按钮2时检查了代码,则会恢复段落元素。
我听说remove()
和detach()
方法不同。当 remove()
时,它们有何不同?本身保留所有 jQuery 数据?
最佳答案
.remove()
从 jQuery.cache
中删除有关所包含元素的 jQuery 内部数据。这些数据包括.data()
的自定义数据集和jQuery事件模型所需的数据。
.detach()
不会删除该数据。
.remove()/.detach()
另外,只是从 DOM 树中删除元素。这就像从数组中删除一个项目......即使项目不再位于数组中,它本身也不会神奇地消失。特别是如果您像在代码中一样保留对它的引用。
关于javascript - jQuery 中remove() 和detach() 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14734565/