Tentu saja ini hanya menghilangkannya dari dokumen yang terlihat. Jika ada referensi lain ke simpul dari JavaScript, seperti variabel $ target itu sendiri, objek akan keluar dari pengumpul sampah untuk saat ini. Jika Anda ingin MENGHANCURKANnya, Anda juga harus kehilangan semua referensi untuk itu. Saya tidak yakin mengapa Anda ingin MENGHANCURKAN elemen DOM. Mungkin Anda hanya membenci $ target. Miskin $ target, apa yang pernah dilakukannya untuk Anda?
bobince
52
$ target baik ketika dia sendirian, tetapi dia menjadi jahat ketika dia berada di sekitar 100.000 teman kloningnya.
Sebastián Grignoli
2
Apakah akan .empty()memiliki efek yang sama?
Saurabh Nanda
3
@SaurabhNanda - Kosong akan menghapus konten objek, tetapi tidak menghapus (atau menghancurkan) objek itu sendiri.
Lukas
46
Jika Anda ingin menghancurkan target, Anda memiliki beberapa opsi. Pertama, Anda dapat menghapus objek dari DOM seperti dijelaskan di atas ...
console.log($target);// jQuery object
$target.remove();// remove target from the DOM
console.log($target);// $target still exists
Opsi 1 - Kemudian ganti target dengan objek jQuery kosong (jQuery 1.4+)
@LeeGee - Bisakah Anda merangkum posting Anda untuk menjelaskan mengapa penghapusan tidak berfungsi untuk objek jQuery? Mengapa tampaknya berfungsi ketika kita melihat console.log ($ target) di akhir? Terima kasih.
Lukas
Saya tidak bisa menjelaskannya lebih baik daripada artikel yang dikutip, yang saya temukan sangat rinci.
LeeGee
Sebagai catatan, ini berfungsi di konsol karena konsol mengevaluasi JS dalam lingkup eval, yang memungkinkan penghapusan. Variabel dalam lingkup "alami" tidak akan dapat dihapus. Gunakan $target=nullsebagai gantinya. Lebih cepat dan tidak mengacaukan optimasi browser internal.
bendman
1
Hapus baik-baik saja. Itu hanya berarti bahwa blok tidak akan dioptimalkan oleh mesin JS. Dalam kebanyakan kasus, itu sama sekali tidak relevan. Ketika itu menjadi masalah, maka Anda mencari cara untuk menghapus. Tidak sebelum.
.empty()
memiliki efek yang sama?Jika Anda ingin menghancurkan target, Anda memiliki beberapa opsi. Pertama, Anda dapat menghapus objek dari DOM seperti dijelaskan di atas ...
Opsi 1 - Kemudian ganti target dengan objek jQuery kosong (jQuery 1.4+)
Opsi 2 - Atau hapus properti seluruhnya (akan menyebabkan kesalahan jika Anda merujuknya ke tempat lain)
Lebih banyak membaca: info tentang objek jQuery kosong , dan info tentang delete
sumber
delete $target
tidak akan berfungsi: perfectionkills.com/understanding-delete/#misconceptions Mengapa tidak akan$target=null
berfungsi?$target=null
sebagai gantinya. Lebih cepat dan tidak mengacaukan optimasi browser internal.Anda mencari
.remove()
fungsinya.http://docs.jquery.com/Manipulation/remove
sumber