jQueryで複数のクラスを選択する


222

私は見栄えがよく、次のような1つのjQueryセレクターステートメントで特定のクラスに一致するすべての要素を選択する方法を見つけることができないようです。

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

これを達成する方法に関するアイデアはありますか?他の唯一のオプションは行うことです

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

しかし、私はこれをかなりの数のクラスで実行しているため、多くのコードが必要です。

回答:


402

これはうまくいくはずです:

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

$()の最初の引数に複数のセレクターをすべて追加する必要があります。追加しない場合、jQueryに検索対象のコンテキストを提供しますが、これは希望どおりではありません。

CSSで行うのと同じです。


3
各要素に指定されたすべてのクラスがある場合にのみ一致させる場合はどうなりますか?
IsmailS 2011

12
はい、これを1つ取得しましたstackoverflow.com/q/1041344/148271。基本的に、交差点のすべてのセレクターに参加する必要があります。いいね$(".myClass.myOtherClass")
IsmailS

CSSグループ化の詳細:W3C "Grouping"
skrounge 2013年

@wal:両方のクラスを指す場合、CSSでもこのコンマが必要です。コンマがなければ、それへの参照.myOtherClassはのどこかにあり.myClassます。
geekuality 2014年

この答えは質問に答えません、このようにORを作成しています!!!! ANDではありません!!
Mahmoud Khateeb 2015年


25

私が使う $('.myClass.myOtherClass').removeClass('theclass');


34
これは、HTML要素に複数のクラスがあり、それらのすべてのクラスでのみ要素のクラスを削除する場合です。他の例では、コンマで区切られたクラスのいずれかを含む要素からクラスを削除します。あなたの例は、私のHTML要素が両方を持っている場合にのみ機能します。たとえば、<div class="myClass myOtherClass theclass">
Kezzer

0
// Due to this Code ): Syntax problem.    
$('.myClass', '.myOtherClass').removeClass('theclass'); 

jQueryドキュメントによると:https : //api.jquery.com/multiple-selector/

この方法で複数のクラスを選択できる場合:

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

すべてのセレクターを単一の「...」または二重のコンマ「...」で囲むことにより

したがって、あなたの場合、複数のクラスを呼び出す正しい方法は次のとおりです:

$('.myClass', '.myOtherClass').removeClass('theclass'); // your Code // Invalid.
$('.myClass , .myOtherClass').removeClass('theclass');  // Correct Code // Is valid.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.