Javascript jQuery empty()与remove()的比较
Javascript jQuery empty()与remove()的比较,javascript,jquery,dom-manipulation,Javascript,Jquery,Dom Manipulation,jQuery中的empty()和remove()方法有什么区别,当我们调用这些方法中的任何一个时,所创建的对象都会被销毁,内存也会被释放?文档对此进行了很好的解释。它还包含以下示例: 之前: <div class="container"> <div class="hello">Hello</div> <div class="goodbye">Goodbye</div> </div> <div clas
jQuery
中的empty()
和remove()
方法有什么区别,当我们调用这些方法中的任何一个时,所创建的对象都会被销毁,内存也会被释放?文档对此进行了很好的解释。它还包含以下示例:
<div class="container">
<div class="hello">Hello</div>
<div class="goodbye">Goodbye</div>
</div>
<div class="container">
<div class="hello">Hello</div>
<div class="goodbye">Goodbye</div>
</div>
之后:
<div class="container">
<div class="goodbye">Goodbye</div>
</div>
<div class="container">
<div class="hello"></div>
<div class="goodbye">Goodbye</div>
</div>
之后:
<div class="container">
<div class="goodbye">Goodbye</div>
</div>
<div class="container">
<div class="hello"></div>
<div class="goodbye">Goodbye</div>
</div>
再见
就内存而言,一旦一个元素从DOM中删除,并且不再有对它的引用,垃圾收集器将在运行时回收内存。
将清空所选内容,但保留所选内容本身empty()
将清空所选内容并删除所选内容本身remove()
<div>
<p><strong>foo</strong></p>
</div>
$('p').empty(); // --> "<div><p></p></div>"
// whereas,
$('p').remove(); // --> "<div></div>"
foo
$('p').empty();//-->“”
//鉴于,
$('p').remove();/-->""
它们都会删除DOM对象并释放它们占用的内存,是的
以下是指向文档的链接,其中还包含示例:
$(“body”).empty()
--它删除body标记中的HTML DOM元素-
当您声明
$(“body”).remove()
-它将删除整个HTML DOM以及body标记。此答案提供了哪些在已存在三年的现有答案中缺失的内容?empty将不会触及选择器的属性。如果您想删除selector元素的属性,我注意到jQuery removeAttr和removeClass在firefox中有缺陷。因此,我的选择是使用remove方法,再次添加container元素,然后将子节点附加到相同的元素中!对我来说,甚至比公认的答案更好。那么事件处理程序呢?我遇到了一个奇怪的情况,其中empty+append两次,使用不同的append导致第二组追加项执行第一组的处理程序。@太晚了,但它们也删除了处理程序。您有可能让这些处理程序注册了一个函数,如live
或delegate
。