Ich versuche also herauszufinden, wie zwei jQuery-Objekte verglichen werden, um festzustellen, ob das übergeordnete Element der Hauptteil einer Seite ist.
Folgendes habe ich:
if ( $(this).parent() === $('body') ) ...
Ich weiß, dass dies falsch ist, aber wenn jemand versteht, worauf ich hinaus will, könnte er mich dann auf den richtigen Weg hinweisen?
var $parent = $(this).parent(), $body = $('body');
var theSame = $parent.is($body);
api.jquery.com/is/#is-jQuery-objectAntworten:
Sie müssen die rohen DOM-Elemente vergleichen, z.
oder
quelle
Warum nicht:
?
quelle
if ($(this).parent().is($("body")))
Eine Schleife ist nicht erforderlich, das Testen des einzelnen ersten Knotens ist nicht erforderlich. Es ist so gut wie nichts erforderlich, außer sicherzustellen, dass sie gleich lang sind und identische Knoten gemeinsam haben. Hier ist ein kleiner Code-Ausschnitt. Vielleicht möchten Sie dies sogar in ein JQuery-Plugin für Ihre eigenen Zwecke konvertieren.
quelle
<div>abc</div>
<div>def</div>
Ich stolperte über diese Antworten und fragte mich, welche besser war. Es hängt alles von Ihren Anforderungen ab, aber am einfachsten zu tippen, zu lesen und auszuführen ist natürlich das Beste. Hier ist der Perf-Testfall, den ich getroffen habe, um eine Entscheidung zu treffen.
http://jsperf.com/jquery-objects-comparison
quelle