J'essaie donc de comprendre comment comparer deux objets jQuery, pour voir si l'élément parent est le corps d'une page.
voici ce que j'ai:
if ( $(this).parent() === $('body') ) ...
Je sais que c'est faux, mais si quelqu'un comprend ce à quoi je veux en venir, pourrait-il m'indiquer la bonne façon de procéder?
var $parent = $(this).parent(), $body = $('body');
var theSame = $parent.is($body);
api.jquery.com/is/#is-jQuery-objectRéponses:
Vous devez comparer les éléments DOM bruts, par exemple:
ou
la source
Pourquoi pas:
?
la source
if ($(this).parent().is($("body")))
Le bouclage n'est pas nécessaire, le test du premier nœud n'est pas nécessaire. Il n'y a pratiquement rien d'autre à faire que de s'assurer qu'ils ont la même longueur et partagent des nœuds identiques. Voici un petit extrait de code. Vous voudrez peut-être même le convertir en un plugin jquery pour vos propres utilisations.
la source
<div>abc</div>
<div>def</div>
Je suis tombé sur ces réponses et je me suis demandé laquelle était la meilleure. Tout dépend de vos besoins, mais le plus simple à taper, lire et exécuter est bien sûr le meilleur. Voici le test de performance que j'ai fait pour prendre une décision.
http://jsperf.com/jquery-objects-comparison
la source