Odpowiedzi:
empty()
opróżni zaznaczenie z jego zawartości, ale zachowa sam wybór.remove()
opróżni zaznaczenie z jego zawartości i usunie sam wybór.Rozważać:
<div>
<p><strong>foo</strong></p>
</div>
$('p').empty(); // --> "<div><p></p></div>"
// whereas,
$('p').remove(); // --> "<div></div>"
Obaj usuwają obiekty DOM i powinni zwolnić pamięć, którą zajmują, tak.
Oto linki do dokumentacji, która zawiera również przykłady:
live
lub delegate
.
Dokumentacja bardzo dobrze to wyjaśnia. Zawiera również przykłady:
przed:
<div class="container">
<div class="hello">Hello</div>
<div class="goodbye">Goodbye</div>
</div>
.usunąć():
$('.hello').remove();
po:
<div class="container">
<div class="goodbye">Goodbye</div>
</div>
przed:
<div class="container">
<div class="hello">Hello</div>
<div class="goodbye">Goodbye</div>
</div>
.pusty():
$('.hello').empty();
po:
<div class="container">
<div class="hello"></div>
<div class="goodbye">Goodbye</div>
</div>
Jeśli chodzi o pamięć, kiedy element zostanie usunięty z DOM i nie ma już do niego odniesień, moduł odśmiecania pamięci odzyska pamięć po uruchomieniu.
$("body").empty()
- usuwa elementy HTML DOM wewnątrz tagu body -
kiedy deklarujesz $("body").remove()
- usuwa cały HTML DOM wraz z tagiem body.