web-dev-qa-db-ja.com

jQuery empty()vs remove()

jQueryempty()メソッドとremove() methodsの違いは何ですか。これらのメソッドのいずれかを呼び出すと、作成中のオブジェクトが破棄され、メモリが解放されます。

96
mabuzer
  • empty()は、選択のすべてのコンテンツを削除します。
  • remove()は、選択とその内容を削除します。

考慮してください:

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

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

// whereas,
$('p').remove(); // --> "<div></div>"

どちらもDOMオブジェクトを削除し、占有しているメモリを解放するはずです、はい。

155
nickf

ドキュメントはそれを非常によく説明しています。例も含まれています。

前:

<div class="container">
  <div class="hello">Hello</div>
  <div class="goodbye">Goodbye</div>
</div>

.remove():

$('.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>

。空の():

$('.hello').empty();

後:

<div class="container">
  <div class="hello"></div>
  <div class="goodbye">Goodbye</div>
</div>

メモリに関する限り、DOMから要素が削除され、それに対する参照がなくなると、ガベージコレクタは実行時にメモリを再利用します。

53
Darin Dimitrov

$("body").empty()-bodyタグ内のHTML DOM要素を削除します-

$("body").remove()を宣言すると、本体TAGとともにHTML DOM全体が削除されます。

2
user1452840