Auswählen mehrerer Klassen mit jQuery

222

Ich habe genau hingeschaut und kann anscheinend nicht herausfinden, wie alle Elemente, die bestimmten Klassen entsprechen, in einer jQuery-Selektoranweisung wie der folgenden ausgewählt werden:

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

Irgendwelche Ideen, wie dies erreicht werden kann? Die einzige andere Möglichkeit ist zu tun

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

Aber ich mache das mit einigen Klassen, daher ist viel Code erforderlich.

Kezzer
quelle

Antworten:

402

Das sollte funktionieren:

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

Sie müssen $ () alle Mehrfachselektoren im ersten Argument hinzufügen, andernfalls geben Sie jQuery einen Kontext, in dem gesucht werden soll, was nicht das ist, was Sie wollen.

Es ist das gleiche wie in CSS.

Erik Bakker
quelle
3
Was ist, wenn ich es nur abgleichen möchte, wenn jedes Element alle angegebenen Klassen hat?
IsmailS
12
Okay , ich habe diesen einen stackoverflow.com/q/1041344/148271 . Im Grunde muss ich alle Selektoren für die Kreuzung verbinden. Gefällt $(".myClass.myOtherClass")
mir
Mehr zur CSS-Gruppierung: W3C "Gruppierung" .
Skrounge
@wal: Dieses Komma ist auch in CSS erforderlich, wenn auf beide Klassen verwiesen wird. Ohne das Komma würde .myOtherClasses irgendwo drinnen darauf verweisen .myClass.
Geekualität
Diese Antwort beantwortet die Frage nicht, auf diese Weise machen Sie einen OP !!!! nicht UND !!
Mahmoud Khateeb
26

Hast du das versucht?

$('.myClass, .myOtherClass').removeClass('theclass');
Ionuț G. Stan
quelle
25

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

Adman
quelle
34
Dies ist der Fall, wenn ein HTML-Element mehrere Klassen hat und Sie die Klasse für das Element nur mit all diesen Klassen entfernen möchten . Andere Beispiele entfernen die Klasse aus jedem Element mit einer der durch Kommas getrennten Klassen. Ihr Beispiel würde nur funktionieren, wenn mein HTML-Element beides hätte , wie<div class="myClass myOtherClass theclass">
Kezzer
0
// Due to this Code ): Syntax problem.    
$('.myClass', '.myOtherClass').removeClass('theclass'); 

Laut jQuery-Dokumentation: https://api.jquery.com/multiple-selector/

Wann können mehrere Klassen auf folgende Weise ausgewählt werden:

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

indem Sie alle Selektoren in ein einfaches "..." oder Doppelkomma einschließen, "..."

In Ihrem Fall ist der richtige Weg, mehrere Klassen aufzurufen:

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