Eliminar varias clases (jQuery)

615

¿Hay alguna manera mejor de reescribir esto?

$('element').removeClass('class1').removeClass('class2');

No puedo usar, removeClass();ya que eliminaría TODAS las clases, que no quiero.

eozzy
fuente

Respuestas:

1128
$("element").removeClass("class1 class2");

De removeClass(), el parámetro de clase:

Una o más clases CSS para eliminar de los elementos, estas están separadas por espacios.

cletus
fuente
19

.removeClass()Documentación de jQuery .

Una o más clases CSS para eliminar de los elementos, estas están separadas por espacios.

SeanJA
fuente
17

La documentación dice:

class (Optional) String
Una o más clases CSS para eliminar de los elementos, estas están separadas por espacios.

Ejemplo:

Elimine la clase 'azul' y 'debajo' de los elementos coincidentes.

$("p:odd").removeClass("blue under");
difunto
fuente
12

¡Hay muchas maneras de hacerlo!

jQuery

  1. eliminar toda la clase
    $("element").removeClass();
    OR
    $("#item").removeAttr('class');
    OR
    $("#item").attr('class', '');
    OR
    $('#item')[0].className = '';

  2. eliminar multi clase
    $("element").removeClass("class1 ... classn");
    O
    $("element").removeClass("class1").removeClass("...").removeClass("classn");

Javascript vainilla

  1. eliminar toda clase

// remove all items all class  
const items = document.querySelectorAll('item');
for (let i = 0; i < items.length; i++) {
    items[i].className = '';
}

  1. eliminar múltiples clases

// only remove all class of first item
const item1 = document.querySelector('item');
item1.className = '';

xgqfrms
fuente
2

Clases separadas por blanco space

$('element').removeClass('class1 class2');
codemirror
fuente
1

Debe separar las clases que desea eliminar por espacios en blanco$('selector').removeClass('class1 class2');

Avishek Mondal
fuente
0

Desde jQuery 3.3.0 , es posible pasar matrices a .addClass(),. removeClass()y toggleClass(), lo que hace que sea más fácil si existe alguna lógica que determine qué clases deben agregarse o eliminarse, ya que no es necesario perder el tiempo con las cadenas delimitadas por espacios.

$("div").removeClass(["class1", "class2"]); 
Mark Fisher
fuente