web-dev-qa-db-fra.com

Pas de sélecteur de classe dans jQuery

Existe-t-il une expression de sélecteur simple pour ne pas sélectionner d'éléments avec une classe spécifique?

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

Je veux juste obtenir les trois premiers divs et essayé

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

Mais cela reçoit tout comme la dernière div contient plus que la première barre. Existe-t-il un moyen d'utiliser un espace réservé dans une telle expression? Quelque chose comme ca

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

D'autres sélecteurs qui peuvent aider?

248
Zardoz

Vous avez besoin du sélecteur :not() :

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

ou bien, la méthode .not() :

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

Vous pouvez utiliser le sélecteur de filtre :not:

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

Ou not() méthode:

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

Plus d'infos:

79
Sarfraz