jQuery中remove()和detach()之间的区别

时间:2013-02-06 16:57:55

标签: javascript jquery

我有一个与jQuery .remove()方法相关的问题。请考虑以下代码:

var x;
$("#btn1").click(function() {
    x = $("p").remove();
});
$("#btn2").click(function() {
    $("body").prepend(x);
});

如果单击button2上的代码,则会恢复段落元素。 我听说remove()detach()方法不同。当remove()本身保存所有jQuery数据时,它们如何不同?

1 个答案:

答案 0 :(得分:3)

.remove()jQuery.cache中删除有关包含元素的jQuery内部数据。此类数据包括使用.data()的自定义数据集和jQuery事件模型所需的数据。

.detach()不会删除该数据。

.remove()/.detach()另外只删除D​​OM树中的元素。这就像从数组中删除一个项目......项目本身不会神奇地消失,即使它不再在数组中。特别是如果你像在代码中那样保留对它的引用。