web-dev-qa-db-ja.com

jqueryは、要素に複数のクラスがある場合に特定のクラスで要素を検索します

それで、私はバックエンドチームからのビルドでよく考えられなかった何かに取り組んでいます。 divでいっぱいのドキュメントが残っています。

私がやっていることは、クリックする必要がある要素からロールバックし、親コンテナを取得してから、class="alert-box warn"class="alert-box dead"などを持つ親内の要素を見つけることです。本質的に、私は各要素で複数のクラスセレクターを使用しようとしています。 alert-boxだけを見つけようとすると、正しく機能していないようです。 warn,dead、 `` fine、etc ...があるためだと思います...

どうすればalert-box*またはワイルドカードの概念に相当するものを見つけることができますか?

27
chris

このようなセレクターを組み合わせることができます

$(".alert-box.warn, .alert-box.dead");

または、ワイルドカードが必要な場合は attribute-contains selector を使用します

$("[class*='alert-box']");

注:上記のセレクターを使用する場合、要素タイプまたはタグを知っていることが望ましいです。タグを知っていると、セレクターがより効率的になります。

$("div.alert-box.warn, div.alert-box.dead");
$("div[class*='alert-box']");
58
John Hartsock

次のような複数のクラスを持つ要素を選択できます。

$("element.firstClass.anotherClass");

次のクラスを最初のクラスにチェーンするだけです。withoutスペース(スペースは「の子」を意味します)。

8
Bojangles
var divs = $("div[class*='alert-box']");
5
Igor Dymov

要素には、任意の数のclassNamesを含めることができますが、1つのクラス属性のみを持つことができます。最初の1つだけがjQueryによって読み取られます。

投稿したコードを使用すると、$(".alert-box.warn")は機能しますが、$(".alert-box.dead")は機能しません。

3
Kevin B