101

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

4

3 に答える 3

162
  • empty()その内容の選択を空にしますが、選択自体は保持します。
  • remove()その内容の選択を空にし、選択自体削除します。

検討:

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

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

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

どちらも DOM オブジェクトを削除し、占有するメモリを解放する必要があります。


例も含まれているドキュメントへのリンクを次に示します。

于 2010-06-22T06:15:37.490 に答える
55

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

前:

<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>

。空の():

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

後:

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

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

于 2010-06-22T06:14:55.090 に答える
2

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

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

于 2013-08-03T05:18:55.340 に答える