【发布时间】:2012-05-23 08:58:43
【问题描述】:
我真的很想知道 jQuery remove 函数是否真的从 DOM 中删除元素。
首先,我查看了here,但答案并不令人信服。
当我注意到我仍然能够操作已调用删除函数的元素时,我遇到了这个问题。
我的代码:
<div id="container">
<div id="div">
This is a div
</div>
</div>
var div = $('#div');
$('#div').remove();
$('#container').append(div);
注意:我的问题不是如何解决这个问题?,但我想了解这里发生了什么!
实际上,这段代码并没有从 dom 中删除 #div,但是如果我将任何 data 设置为 #div,它将丢失。我现在对 remove 函数的行为感到很困惑。任何人都可以解释一下吗?
DEMO
我确信 div 变量不仅仅是 dom 元素的克隆,而是对它的引用,因为当我操作 div 变量时(如 div.html('something'))div DOM 内得到更新。
还是我错了?
【问题讨论】:
-
是的,api.jquery.com/remove 可能会解开谜团:))
-
只要有东西引用了那个对象(存储在一个变量中),它就会从 DOM 中删除,但永远不会从内存中删除。
-
@Tats_innit 老兄,你真的以为我以前没看过吗??
-
@skafandri 晚安!只是评论兄弟,没有汗水! B-)
-
@skafandri:有很多人不会在你的鞋子里读到它。
标签: javascript jquery html dom