Jadi saya mencoba mencari cara untuk membandingkan dua objek jQuery, untuk melihat apakah elemen induknya adalah badan halaman.
inilah yang saya miliki:
if ( $(this).parent() === $('body') ) ...
Saya tahu ini salah, tetapi jika ada yang mengerti apa yang saya maksud, dapatkah mereka mengarahkan saya ke cara yang benar untuk melakukan ini?
var $parent = $(this).parent(), $body = $('body');
var theSame = $parent.is($body);
api.jquery.com/is/#is-jQuery-objectJawaban:
Anda perlu membandingkan elemen DOM mentah, misalnya:
atau
sumber
Kenapa tidak:
?
sumber
if ($(this).parent().is($("body")))
Pendauran tidak diperlukan, pengujian satu node pertama tidak diperlukan. Hampir tidak ada yang diperlukan selain memastikan mereka memiliki panjang yang sama dan berbagi node yang identik. Berikut ini potongan kode kecil. Anda bahkan mungkin ingin mengubahnya menjadi plugin jquery untuk penggunaan Anda sendiri.
sumber
<div>abc</div>
<div>def</div>
Saya tersandung pada jawaban ini dan bertanya-tanya mana yang lebih baik. Itu semua tergantung pada kebutuhan Anda tetapi yang paling mudah untuk diketik, dibaca dan dijalankan tentu saja adalah yang terbaik. Inilah kasus uji kinerja yang saya buat untuk membuat keputusan.
http://jsperf.com/jquery-objects-comparison
sumber