Je dois comparer deux sélecteurs et je me demandais pourquoi cela retourne faux en Firebug ... et comment puis-je comparer deux sélecteurs c'est ce que je dois faire p>
3 Réponses :
Essayez:
$('.product-info:last').get(0) == $('.product-info:last').get(0)
Je pense que ".get (0)" serait mieux, car cela vous ferait le nœud DOM et non un objet JQuery.
Je me confondre toujours entre ces deux
Fonctionne uniquement si le sélecteur contient exactement un élément DOM. Si le sélecteur sélectionne plusieurs éléments, ce test sera incomplet.
@ MBLASE75 Si le sélecteur sélectionne plus d'un code> mais il ne B> est-il avant et dernier retourne 1.
@ROYINAMIR Oui, bien sûr; Je décrivais évidemment le problème avec la solution General i>. Votre approche fonctionne uniquement avec ce sélecteur spécifique, non pas avec tous les sélecteurs possibles.
la raison Utilisez est plutôt que de vérifier si des éléments sont les mêmes. p> $ ('. produit-info: dernier')! == $ ('. produit-info: dernier') code> est parce que jQuery créer un nouvel objet pour chacun de ceux-ci, ils ne sont pas le même objet jQuery.
ATTENTION: Ma lecture de jQuery est () est qu'il ne teste pas si deux sélecteurs sont < B> identique b>, simplement qu'ils chevauchent b>. Donc, par exemple, cela fonctionnerait aussi: précédent.is (': dernier') code>
Essayez ce qui suit:
var previous = $('.product-info:visible');
if (previous.is('.product-info:last')) {
return false;
}
essayez-vous de comparer le sélecteur? L'objet jQuery qu'il revient?
Dupliqué possible de Équité d'objet JQuery
comparer si c'est le même sélecteur
Gardez à l'esprit que
$ ("# texte") code> est un objet jQuery.== code> Lorsque vous comparez deux objets uniquement pour voir s'ils sont exactement le même objet, non pas qu'ils ont le même contenu. C'est pourquoi votre méthode de comparaison ne fonctionne pas depuis chaque objet dans ce$ ('. Produit-info: dernier') == $ ('. Produit-info: dernier') code> est différent, alors ils ne sont jamais== code>. @Royi a un travail décent.