jQuery empty()vs remove()

mab*_*zer 97 javascript jquery dom-manipulation

它们empty()remove()方法之间有什么区别jQuery,当我们调用这些方法时,正在创建的对象将被销毁并释放内存?

nic*_*ckf 157

  • empty() 将删除选择的所有内容.
  • remove() 将删除选择及其内容.

考虑:

<div>
    <p><strong>foo</strong></p>
</div>

$('p').empty();  // --> "<div><p></p></div>"

// whereas,
$('p').remove(); // --> "<div></div>"
Run Code Online (Sandbox Code Playgroud)

它们都删除了DOM对象,并且应该释放它们占用的内存,是的.


Dar*_*rov 54

文档很好地解释了它.它还包含以下示例:

之前:

<div class="container">
  <div class="hello">Hello</div>
  <div class="goodbye">Goodbye</div>
</div>
Run Code Online (Sandbox Code Playgroud)

.去掉():

$('.hello').remove();
Run Code Online (Sandbox Code Playgroud)

后:

<div class="container">
  <div class="goodbye">Goodbye</div>
</div>
Run Code Online (Sandbox Code Playgroud)

之前:

<div class="container">
  <div class="hello">Hello</div>
  <div class="goodbye">Goodbye</div>
</div>
Run Code Online (Sandbox Code Playgroud)

.empty():

$('.hello').empty();
Run Code Online (Sandbox Code Playgroud)

后:

<div class="container">
  <div class="hello"></div>
  <div class="goodbye">Goodbye</div>
</div>
Run Code Online (Sandbox Code Playgroud)

就内存而言,一旦从DOM中删除了一个元素,并且不再有对它的引用,垃圾收集器将在运行时回收内存.