101 votes

Comment compareriez-vous les objets jQuery?

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?

157voto

CMS Points 315406

Vous devez comparer les éléments bruts du DOM, par exemple:

 if ($(this).parent().get(0) === $('body').get(0))
 

ou

 if ($(this).parent()[0] === $('body')[0])
 

59voto

cletus Points 276888

Pourquoi pas:

 if ($(this).parent().is("body")) {
  ...
}
 

?

18voto

tbranyen Points 2922

La mise en boucle n'est pas requise, le test du premier nœud n'est pas requis. Pratiquement rien n'est requis sauf 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 convertir ceci en un plugin jquery pour vos propres utilisations.

 jQuery(function($) {
  // Two separate jQuery references
  var divs = $("div");
  var divs2 = $("div");

  // They are equal
  if (divs.length == divs2.length && divs.length == divs.filter(divs2).length) {         

  // They are not
  } else {}
});
 

2voto

Salketer Points 2642

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 facile à saisir, à lire et à exécuter est le meilleur, bien sûr. Voici le test que j'ai fait pour prendre une décision.

http://jsperf.com/jquery-objects-comparison

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X