<div class="fuu">
...
</div>
<div class="fuu no">
...
</div>
...
Wie kann ich alle fuu
außer denen auswählen , die die .no
Klasse haben?
<div class="fuu">
...
</div>
<div class="fuu no">
...
</div>
...
Wie kann ich alle fuu
außer denen auswählen , die die .no
Klasse haben?
.fuu:not(.no)
ist auch ein gültiger CSS3-Selektor und entspricht den gleichen Elementen in Browsern, die dies unterstützen:not()
. Daher glaube ich, dass jQuery diesen Selektor übergeben wird,querySelectorAll()
anstatt sich für diese Browser auf Sizzle zu verlassen, wodurch die Leistung in diesen Browsern verbessert wird. Natürlich interessiert es niemanden :)$("#mydiv .fuu:not(.no)").click(function(){console.log('test');});
. Ich habe lange nach einem Problem gesuchtnot()
, das damit zusammenhängt. Schließlich lag es einfach daran, dass dieactive
Klasse dynamisch hinzugefügt wurde. Ich musste es so machen :$("#mydiv").on('click', '.fuu:not(.no)', function(){console.log('test');});
. Da ich hier weiter herumgegraben habe und dachte, dassnot()
es nicht funktioniert, dachte ich, ein Kommentar hier könnte anderen helfen.$('.aaa:not(.bbb):not(.ccc)')
. Das wird alles bekommen, was Klasse hat,aaa
aber keine Klassebbb
oderccc
Sie können die '.no'-Klasse auch mit folgenden Elementen herausfiltern:
$('.fuu').not('.no');
quelle
Holen Sie sich den Klassennamen des Div. Wenn der Klassenname ein Leerzeichen enthält, bedeutet dies, dass es mehr als eine Klasse hat!
quelle
<div class="fuu yes">
? Es hat keineno
Klasse, aber es würde false für zurückgeben.attr('class') == 'fuu'
.