Yanıtlar:
empty()
içerik seçimini boşaltacak, ancak seçimin kendisini koruyacaktır.remove()
içerik seçimini boşaltacak ve seçimin kendisini kaldıracaktır.Düşünmek:
<div>
<p><strong>foo</strong></p>
</div>
$('p').empty(); // --> "<div><p></p></div>"
// whereas,
$('p').remove(); // --> "<div></div>"
Her ikisi de DOM nesnelerini kaldırır ve aldıkları belleği serbest bırakmalıdır, evet.
Örnekler de içeren belgelere bağlantılar aşağıda verilmiştir:
live
ya delegate
.
Belgeler bunu çok iyi açıklıyor. Ayrıca örnekler içerir:
önce:
<div class="container">
<div class="hello">Hello</div>
<div class="goodbye">Goodbye</div>
</div>
.Kaldırmak():
$('.hello').remove();
sonra:
<div class="container">
<div class="goodbye">Goodbye</div>
</div>
önce:
<div class="container">
<div class="hello">Hello</div>
<div class="goodbye">Goodbye</div>
</div>
.boş():
$('.hello').empty();
sonra:
<div class="container">
<div class="hello"></div>
<div class="goodbye">Goodbye</div>
</div>
Bellek söz konusu olduğunda, DOM'den bir öğe kaldırıldığında ve ona daha fazla referans olmadığında, çöp toplayıcı çalıştığında belleği geri alır.
$("body").empty()
- body etiketi içindeki HTML DOM öğelerini kaldırır -
beyan ettiğinizde $("body").remove()
- tüm HTML DOM'u body TAG ile birlikte kaldırır.