<div class="fuu">
...
</div>
<div class="fuu no">
...
</div>
...
Wie kann ich alle fuuaußer denen auswählen , die die .noKlasse haben?
Antworten:
Verwenden Sie :not()diese Option, um die andere Klasse auszuschließen:
$('.fuu:not(.no)')
$("#mydiv .fuu:not(.no)").click(function(){console.log('test');});. Ich habe lange nach einem Problem gesucht not(), das damit zusammenhängt. Schließlich lag es einfach daran, dass die activeKlasse 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, dass not()es nicht funktioniert, dachte ich, ein Kommentar hier könnte anderen helfen.
$('.aaa:not(.bbb):not(.ccc)'). Das wird alles bekommen, was Klasse hat, aaaaber keine Klasse bbb oder ccc
Holen Sie sich den Klassennamen des Div. Wenn der Klassenname ein Leerzeichen enthält, bedeutet dies, dass es mehr als eine Klasse hat!
<div class="fuu yes">? Es hat keine noKlasse, aber es würde false für zurückgeben .attr('class') == 'fuu'.
.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 :)