javascript - jQuery 中remove() 和detach() 的区别

标签 javascript jquery

我有一个与 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/

相关文章:

javascript - 通过不将元素附加到 Dom 来获取元素的宽度

javascript - getJSON 完成回调

javascript - javascript将数据存储在全局变量数组中(或其他更好的方法)

javascript - HTML5 Geolocation - 在 iOS 上一直不工作

javascript - Hammer JS 不适用于主干

javascript - 如何将 jquery datepicker 添加到动态创建的输入(位于名为 page 的 ajax 中)

jquery - 如何在 jQuery Mobile 1.3 中实现可滚动的内容 Pane

javascript - 如何触发回车键

javascript - HTML 选择值访问变量

javascript - 为本地存储增加值(value)