Как я могу выбрать все элементы без данного класса в JQuery?

226

Учитывая следующее:

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

Как я могу выбрать все, кроме пункта 2, АКА что-то вроде:

$("ul#list li!active")
Эндрю Джонсон
источник
24
$("ul#list").not(".active")или$("ul#list:not(.active)")
N 1,1

Ответы:

424

Вы можете использовать .not()метод или :not()селектор

Код на основе вашего примера:

$("ul#list li").not(".active") // not method
$("ul#list li:not(.active)")   // not selector
Андре Баклунд
источник
10
Если хотите проверить два класса, используйте как.not(".completed, .current")
Nishantha
в 2019 году vanillaJs: document.querySelectorAll ('. foo-class: not (.bar-class): not (.foobar-class'))
Иван Колыхалов
18

Вы можете использовать это, чтобы выбрать все liэлементы без класса:

$('ul#list li:not([class])')
Освальдо Феррейра
источник
2
if (!$(row).hasClass("changed")) {
    // do your stuff
}
user3763117
источник