我有一个与jQuery .remove()
方法相关的问题。请考虑以下代码:
var x;
$("#btn1").click(function() {
x = $("p").remove();
});
$("#btn2").click(function() {
$("body").prepend(x);
});
如果单击button2上的代码,则会恢复段落元素。
我听说remove()
和detach()
方法不同。当remove()
本身保存所有jQuery数据时,它们如何不同?
答案 0 :(得分:3)
.remove()
从jQuery.cache
中删除有关包含元素的jQuery内部数据。此类数据包括使用.data()
的自定义数据集和jQuery事件模型所需的数据。
.detach()
不会删除该数据。
.remove()/.detach()
另外只删除DOM树中的元素。这就像从数组中删除一个项目......项目本身不会神奇地消失,即使它不再在数组中。特别是如果你像在代码中那样保留对它的引用。