Wie kann ich alle Elemente ohne eine bestimmte Klasse in jQuery auswählen?

226

Angesichts der folgenden:

<ul id="list">
    <li>Item 1</li>
    <li class="active">Item 2</li>
    <li>Item 3</li>
    <li>Item 4</li>
    <li>Item 5</li>
</ul>

Wie kann ich alle außer Punkt 2, AKA so etwas auswählen wie:

$("ul#list li!active")
Andrew G. Johnson
quelle
24
$("ul#list").not(".active")oder$("ul#list:not(.active)")
N 1.1

Antworten:

423

Sie können die .not()Methode oder den :not()Selektor verwenden

Code basierend auf Ihrem Beispiel:

$("ul#list li").not(".active") // not method
$("ul#list li:not(.active)")   // not selector
Andre Backlund
quelle
9
Wenn Sie zwei Klassen überprüfen möchten, verwenden Sie als.not(".completed, .current")
Nishantha
im Jahr 2019 vanillaJs: document.querySelectorAll ('. foo-Klasse: nicht (.bar-Klasse): nicht (.foobar-Klasse'))
Ivan Kolyhalov
18

Sie können dies verwenden, um alle liElemente ohne Klasse auszuwählen :

$('ul#list li:not([class])')
Oswaldo Ferreira
quelle
2
if (!$(row).hasClass("changed")) {
    // do your stuff
}
user3763117
quelle