web-dev-qa-db-ja.com

jQueryのクラスセレクタではない

特定のクラスを持つ要素を選択しない単純なセレクタ式はありますか?

<div class="first-foo" />
<div class="first-moo" />
<div class="first-koo" />
<div class="first-bar second-foo" />

私は最初の3つのdivを取得したいのですが

$(div[class^="first-"][class!="first-bar"])

しかし、最後のdivがfirst-bar以上のものを含んでいるので、これはすべてを受けます。そのような表現でプレースホルダーを使用する方法はありますか?そんな感じ

$(div[class^="first-"][class!="first-bar*"]) // doesn't seem to work

他に役立つセレクタはありますか?

239
Zardoz

:not() セレクタが必要です。

$('div[class^="first-"]:not(.first-bar)')

あるいは、 .not() メソッドを使用します。

$('div[class^="first-"]').not('.first-bar');
481
lonesomeday

:notフィルタセレクタを使うことができます。

$('foo:not(".someClass")')

またはnot()メソッド:

$('foo').not(".someClass")

詳しい情報:

76
Sarfraz