Jak mogę wybrać wszystkie elementy bez danej klasy w jQuery?

226

Biorąc pod uwagę następujące kwestie:

<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>

Jak mogę wybrać wszystkie oprócz pozycji 2, AKA coś takiego:

$("ul#list li!active")
Andrew G. Johnson
źródło
24
$("ul#list").not(".active")lub$("ul#list:not(.active)")
N 1.1

Odpowiedzi:

423

Możesz użyć .not()metody lub :not()selektora

Kod oparty na twoim przykładzie:

$("ul#list li").not(".active") // not method
$("ul#list li:not(.active)")   // not selector
Andre Backlund
źródło
9
Jeśli chcesz sprawdzić dwie klasy użyj jako.not(".completed, .current")
Nishantha
w 2019 vanillaJs: document.querySelectorAll ('. foo-class: not (.bar-class): not (.foobar-class'))
Ivan Kolyhalov
18

Możesz użyć tego, aby wybrać wszystkie lielementy bez klasy:

$('ul#list li:not([class])')
Oswaldo Ferreira
źródło
2
if (!$(row).hasClass("changed")) {
    // do your stuff
}
użytkownik3763117
źródło