Not class selector in jQuery
Is there a simple selector expression to not select elements with a specific class?
<div class="first-foo" />
<div class="first-moo" />
<div class="first-koo" />
<div class="first-bar second-foo" />
I just want to get the first three divs and tried
$(div[class^="first-"][class!="first-bar"])
But this receives all as the last div contains more than first-bar. Is there a way to use a placeholder in such an expression? Something like that
$(div[class^="first-"][class!="first-bar*"]) // doesn't seem to work
Any other selectors that may help?
You need the :not()
selector:
$('div[class^="first-"]:not(.first-bar)')
or, alternatively, the .not()
method:
$('div[class^="first-"]').not('.first-bar');
You can use the :not
filter selector:
$('foo:not(".someClass")')
Or not()
method:
$('foo').not(".someClass")
More Info:
- http://api.jquery.com/not-selector/
- http://api.jquery.com/not/