¿Cómo puedo seleccionar todos los elementos sin una clase dada en jQuery?

226

Dado lo siguiente:

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

¿Cómo puedo seleccionar todos menos el Artículo 2, también conocido como algo así como:

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

Respuestas:

424

Puedes usar el .not()método o :not()selector

Código basado en su ejemplo:

$("ul#list li").not(".active") // not method
$("ul#list li:not(.active)")   // not selector
Andre Backlund
fuente
10
Si desea verificar el uso de dos clases como.not(".completed, .current")
Nishantha
en 2019 vanillaJs: document.querySelectorAll ('. foo-class: not (.bar-class): not (.foobar-class'))
Ivan Kolyhalov
18

Puede usar esto para elegir todos los lielementos sin clase:

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