Jawaban:
empty()
akan mengosongkan pilihan kontennya, tetapi mempertahankan pilihan itu sendiri.remove()
akan mengosongkan pilihan isinya dan menghapus seleksi itu sendiri.Mempertimbangkan:
<div>
<p><strong>foo</strong></p>
</div>
$('p').empty(); // --> "<div><p></p></div>"
// whereas,
$('p').remove(); // --> "<div></div>"
Keduanya menghapus objek DOM dan harus melepaskan memori yang mereka gunakan, ya.
Berikut tautan ke dokumentasi, yang juga berisi contoh:
live
atau delegate
.
Dokumentasi menjelaskannya dengan sangat baik. Ini juga berisi contoh:
sebelum:
<div class="container">
<div class="hello">Hello</div>
<div class="goodbye">Goodbye</div>
</div>
.menghapus():
$('.hello').remove();
setelah:
<div class="container">
<div class="goodbye">Goodbye</div>
</div>
sebelum:
<div class="container">
<div class="hello">Hello</div>
<div class="goodbye">Goodbye</div>
</div>
.kosong():
$('.hello').empty();
setelah:
<div class="container">
<div class="hello"></div>
<div class="goodbye">Goodbye</div>
</div>
Sejauh menyangkut memori, setelah elemen dihapus dari DOM dan tidak ada lagi referensi ke dalamnya, pengumpul sampah akan mengambil kembali memori saat dijalankan.
$("body").empty()
- itu 'menghapus elemen HTML DOM di dalam tag body -
ketika Anda mendeklarasikan $("body").remove()
- itu menghapus seluruh DOM HTML bersama dengan TAG badan.