224 votes

Sélection de plusieurs classes avec jQuery

J'ai bien regardé et je n'arrive pas à trouver comment sélectionner tous les éléments correspondant à certaines classes dans une instruction de sélecteur jQuery telle que celle-ci :

$('.myClass', '.myOtherClass').removeClass('theclass');

Avez-vous des idées sur la façon d'y parvenir ? La seule autre option est de faire

$('.myClass').removeClass('theclass');
$('.myOtherClass').removeClass('theclass');

Mais je fais cela avec un grand nombre de classes, ce qui nécessite beaucoup de code.

408voto

Erik Bakker Points 2389

Cela devrait fonctionner :

$('.myClass, .myOtherClass').removeClass('theclass');

Vous devez ajouter les sélecteurs multiples tous dans le premier argument de $(), sinon vous donnez à jQuery un contexte dans lequel chercher, ce qui n'est pas ce que vous voulez.

C'est la même chose que ce que vous feriez en CSS.

3 votes

Que se passe-t-il si je veux que la correspondance ne soit établie que lorsque chaque élément possède toutes les classes spécifiées ?

12 votes

Bon, j'ai eu celui-là stackoverflow.com/q/1041344/148271 . en fait, je vais devoir joindre tous les sélecteurs pour l'intersection. Comme $(".myClass.myOtherClass")

0 votes

Plus d'informations sur le regroupement CSS : W3C "Grouping" (regroupement) .

26voto

Ionuț G. Stan Points 62482

Avez-vous essayé ?

$('.myClass, .myOtherClass').removeClass('theclass');

26voto

Adman Points 158

J'utilise $('.myClass.myOtherClass').removeClass('theclass');

34 votes

C'est le cas si un élément HTML a plusieurs classes, et que vous voulez supprimer la classe de l'élément seulement avec tous de ces classes. D'autres exemples supprimeront la classe de tout élément contenant l'une des classes séparées par des virgules. Votre exemple ne fonctionnerait que si mon élément HTML avait les deux tels que <div class="myClass myOtherClass theclass">

0voto

Rehan Shah Points 1153
// Due to this Code ): Syntax problem.    
$('.myClass', '.myOtherClass').removeClass('theclass'); 

Selon la documentation de jQuery : https://api.jquery.com/multiple-selector/

Vous pouvez sélectionner plusieurs classes de cette manière :

jQuery(“selector1, selector2, selectorN”) // double Commas. // IS valid.
jQuery('selector1, selector2, selectorN') // single Commas. // Is valid.

en enfermant tous les sélecteurs dans un seul "..." ou dans une double virgule, "...".

Donc dans votre cas, la façon correcte d'appeler plusieurs classes est :

$('.myClass', '.myOtherClass').removeClass('theclass'); // your Code // Invalid.
$('.myClass , .myOtherClass').removeClass('theclass');  // Correct Code // Is valid.

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