empty()
中的remove()
和jQuery
方法有什么区别,当我们调用这些方法中的任何一个时,正在创建的对象将被销毁并释放内存?
答案 0 :(得分:154)
empty()
将删除所有内容。remove()
将删除选择及其内容。考虑:
<div>
<p><strong>foo</strong></p>
</div>
$('p').empty(); // --> "<div><p></p></div>"
// whereas,
$('p').remove(); // --> "<div></div>"
他们都删除了DOM对象,应该释放他们占用的内存,是的。
答案 1 :(得分:52)
文档解释得非常好。它还包含示例:
之前:
<div class="container">
<div class="hello">Hello</div>
<div class="goodbye">Goodbye</div>
</div>
卸下摆臂():
$('.hello').remove();
后:
<div class="container">
<div class="goodbye">Goodbye</div>
</div>
之前:
<div class="container">
<div class="hello">Hello</div>
<div class="goodbye">Goodbye</div>
</div>
.empty():
$('.hello').empty();
后:
<div class="container">
<div class="hello"></div>
<div class="goodbye">Goodbye</div>
</div>
就内存而言,一旦从DOM中删除了一个元素并且没有对它的引用,垃圾收集器将在它运行时回收内存。
答案 2 :(得分:2)
$("body").empty()
- 它'删除了body标签内的HTML DOM元素 -
当您声明$("body").remove()
时 - 它会删除整个HTML DOM以及正文标记。