Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery empty()与remove()的比较_Javascript_Jquery_Dom Manipulation - Fatal编程技术网

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