2010-11-02 4 views
4

Juste essayer de comprendre comment vous pouvez tester plusieurs sélecteurs dans un morceau existant code-à-dire comme celui-cijQuery OU Sélecteur?

if (!(jQuery('#selector1 || #selector2').hasClass('some-class'))) { 
//code here 
} 

Cela ne fonctionne pas, mais se demander s'il y a quelque chose que je peux faire pour le faire fonctionner?

Répondre

12

Il suffit de les sélectionner à la fois, si l'une d'entre eux a la classe some-class, la condition est vraie:

if (!jQuery('#selector1, #selector2').hasClass('some-class')) { 
    //code here 
} 

Ou, si je mal interprété votre logique, vous pouvez (et devrait, par souci de rapidité et de simplicité) briser les en deux:

if (!(jQuery('#selector1').hasClass('some-class') || jQuery('#selector2').hasClass('some-class'))) { 
    //code here 
} 
+0

merci beaucoup - ouais le deuxième bit de code que vous avez ajouté est ce que je suis après. merci – Tom

+0

vérifier ma réponse pour une version allégée ... – hunter

+0

@hunter - votre réponse est incorrecte, vous vérifiez la classe sur un descendant (et c'est beaucoup moins efficace). –

0
if ((!('#selector1').hasClass('some-class')) || (!('#selector2').hasClass('some-class'))) { 
//code here 
} 

Pourquoi pas comme ça?

1

assez simple, il est une virgule;)

if (!(jQuery('#selector1 .some-class, #selector2 .some-class'))) { 
//code here 
} 
1

pas que je sache. peut-être juste faire quelque chose comme ceci:

if((!$('#selectorid1').hasClass(class)) || (!$('#selectorid2').hasClass(class))){}