Więc próbuję dowiedzieć się, jak porównać dwa obiekty jQuery, aby sprawdzić, czy element nadrzędny jest treścią strony.
oto co mam:
if ( $(this).parent() === $('body') ) ...
Wiem, że to źle, ale jeśli ktoś rozumie, do czego zmierzam, czy może wskazać mi właściwy sposób zrobienia tego?
var $parent = $(this).parent(), $body = $('body');
var theSame = $parent.is($body);
api.jquery.com/is/#is-jQuery-objectOdpowiedzi:
Musisz porównać surowe elementy DOM, np:
lub
źródło
Dlaczego nie:
?
źródło
if ($(this).parent().is($("body")))
Pętle nie są wymagane, testowanie pierwszego pojedynczego węzła nie jest wymagane. Prawie nic nie jest wymagane poza upewnieniem się, że są tej samej długości i mają identyczne węzły. Oto mały fragment kodu. Możesz nawet przekonwertować to na wtyczkę jquery do własnych celów.
źródło
<div>abc</div>
<div>def</div>
Natknąłem się na te odpowiedzi i zastanawiałem się, która z nich jest lepsza. Wszystko zależy od twoich potrzeb, ale najłatwiejszy do wpisania, odczytania i wykonania jest oczywiście najlepszy. Oto przykład testu perf, który wykonałem, aby podjąć decyzję.
http://jsperf.com/jquery-objects-comparison
źródło