javascript - Inte klassväljare i jQuery
Finns det ett enkelt selektorexpression för att inte välja element med en specifik klass?
<div class="first-foo" />
<div class="first-moo" />
<div class="first-koo" />
<div class="first-bar second-foo" />
Jag vill bara få de första tre divarna och försökte
$(div[class^="first-"][class!="first-bar"])
Men detta tar emot allt eftersom den sista div:en innehåller mer än first-bar. Finns det ett sätt att använda en platshållare i ett sådant uttryck? Något åt det hållet
$(div[class^="first-"][class!="first-bar*"]) // doesn't seem to work
Finns det några andra selektorer som kan vara till hjälp?
Svar #1
Du behöver :not()-väljaren:
$('div[class^="first-"]:not(.first-bar)')
eller, alternativt, .not()-metoden:
$('div[class^="first-"]').not('.first-bar');
Svar #2
Du kan använda :not-filterväljaren:
$('foo:not(".someClass")')
Eller not()-metod:
$('foo').not(".someClass")
Mer information:
- http://api.jquery.com/not-selector/
- http://api.jquery.com/not/
