11
votes

Comment utiliser JQuery dans la comparaison des deux sélecteurs?

Je dois comparer deux sélecteurs et je me demandais pourquoi cela retourne faux en Firebug ... et comment puis-je comparer deux sélecteurs xxx

c'est ce que je dois faire xxx


4 commentaires

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") est un objet jQuery. == 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') est différent, alors ils ne sont jamais == . @Royi a un travail décent.


3 Réponses :


5
votes

Essayez:

$('.product-info:last').get(0) == $('.product-info:last').get(0)


5 commentaires

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 mais il ne est-il avant et dernier retourne 1.


@ROYINAMIR Oui, bien sûr; Je décrivais évidemment le problème avec la solution General . Votre approche fonctionne uniquement avec ce sélecteur spécifique, non pas avec tous les sélecteurs possibles.



14
votes

la raison $ ('. produit-info: dernier')! == $ ('. produit-info: dernier') est parce que jQuery créer un nouvel objet pour chacun de ceux-ci, ils ne sont pas le même objet jQuery.

Utilisez est plutôt que de vérifier si des éléments sont les mêmes. xxx


1 commentaires

ATTENTION: Ma lecture de jQuery est () est qu'il ne teste pas si deux sélecteurs sont < B> identique , simplement qu'ils chevauchent . Donc, par exemple, cela fonctionnerait aussi: précédent.is (': dernier')



2
votes

Essayez ce qui suit:

var previous = $('.product-info:visible');
if (previous.is('.product-info:last')) {
    return false;
} 


0 commentaires