¿Cómo eliminar todas las clases CSS usando jQuery / JavaScript?

En lugar de llamar individualmente $("#item").removeClass() para cada clase que pueda tener un elemento, ¿hay una única función a la que se pueda llamar que elimine todas las clases CSS del elemento dado?

Tanto jQuery como JavaScript sin formato funcionarán.

preguntado el 15 de septiembre de 09 a las 00:09

13 Respuestas

$("#item").removeClass();

llamar removeClass sin parámetros eliminará todas las clases del elemento.


También puede utilizar (aunque no se recomienda necesariamente, el correcta camino es el de arriba):

$("#item").removeAttr('class');
$("#item").attr('class', '');
$('#item')[0].className = '';

Si no tuviera jQuery, esta sería prácticamente su única opción:

document.getElementById('item').className = '';

Respondido el 15 de Septiembre de 09 a las 12:09

¿No debería el attr() la versión sea prop() ¿ahora? - Mike

Llamar a removeClass () sin parámetros parece que ya no funciona en la versión 1.11.1 - Vincent

@Vincent Parece un error introducido en jQuery ya que su documentación establece explícitamente esto: If a class name is included as a parameter, then only that class will be removed from the set of matched elements. If no class names are specified in the parameter, all classes will be removed. api.jquery.com/removeclass - AteoP3ace

Sí, también sospecho que es un error, y no por diseño. Mientras tanto, el siguiente JavaScript puro funciona bien. document.getElementById ("elemento"). removeAttribute ("clase"); - Vincent

Hay un problema con jQuery UI 1.9. Si removeClass () no funcionó, use removeAttr ('class') - Milad

Espera, ¿no elimina removeClass () por defecto todas las clases si no se especifica nada específico? Entonces

$("#item").removeClass();

lo hará por su cuenta ...

Respondido el 15 de Septiembre de 09 a las 04:09

sí: "Elimina todas o las clases especificadas del conjunto de elementos coincidentes". - da5id

Ahora es documentado adecuadamente: Si no se especifican nombres de clase en el parámetro, se eliminarán todas las clases. - usuario

Solo configure el className atributo del elemento DOM real a '' (nada).

$('#item')[0].className = ''; // the real DOM element is at [0]

Edit: Otras personas han dicho que solo llama removeClass funciona - Probé esto con Google JQuery Playground: http://savedbythegoog.appspot.com/?id=ag5zYXZlZGJ5dGhlZ29vZ3ISCxIJU2F2ZWRDb2RlGIS61gEM ... y funciona. Entonces también puedes hacerlo de esta manera:

$("#item").removeClass();

Respondido el 15 de Septiembre de 09 a las 04:09

Claro.

$('#item')[0].className = '';
// or
document.getElementById('item').className = '';

Respondido el 15 de Septiembre de 09 a las 04:09

Je, vino buscando una respuesta similar. Entonces me di cuenta.

Eliminar clases específicas

$('.class').removeClass('class');

Di si el elemento tiene clase = "clase otra clase"

Respondido el 08 de junio de 14 a las 19:06

El método más corto

$('#item').removeAttr('class').attr('class', '');

Respondido el 21 de enero de 13 a las 15:01

Puedes intentarlo

$(document).ready(function() {
   $('body').find('#item').removeClass();
});

Si tiene que acceder a ese elemento sin un nombre de clase, por ejemplo, tiene que agregar un nuevo nombre de clase, puede hacerlo:

$(document).ready(function() {
   $('body').find('#item').removeClass().addClass('class-name');
});

Utilizo esa función en mi proyecto para eliminar y agregar clases en un constructor html. Buena suerte.

Respondido 03 Jul 17, 07:07

$('#elm').removeAttr('class');

ya no estará presente class attr en "elm".

Respondido el 31 de enero de 17 a las 13:01

esto es lo que funcionó para mí. removeClass(); no funcionó para mí. - arrodillados

Dado que no todas las versiones de jQuery se crean de la misma manera, es posible que se encuentre con el mismo problema que yo, lo que significa llamar a $ ("# item"). RemoveClass (); en realidad, no elimina la clase. (Probablemente un error)

Un método más confiable es simplemente usar JavaScript sin formato y eliminar el atributo de clase por completo.

document.getElementById("item").removeAttribute("class");

Respondido el 20 de junio de 16 a las 21:06

Me gusta usar js nativos, ¡lo crea o no!

1.

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

2.

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

Formas de jQuery

  1. $("#item").removeClass();

  2. $("#item").removeClass("class1 ... classn");

Respondido el 13 de junio de 17 a las 04:06

Usemos este ejemplo. Tal vez desee que el usuario de su sitio web sepa que un campo es válido o necesita atención cambiando el color de fondo del campo. Si el usuario presiona restablecer, su código solo debe restablecer los campos que tienen datos y no molestarse en recorrer todos los demás campos de su página.

Este filtro jQuery eliminará la clase "highlightCriteria" solo para los campos de entrada o selección que tengan esta clase.

$form.find('input,select').filter(function () {
    if((!!this.value) && (!!this.name)) {
        $("#"+this.id).removeClass("highlightCriteria");
    }
});

Respondido 19 Oct 18, 22:10

prueba con removeClass

En el:

var nameClass=document.getElementsByClassName("clase1");
console.log("after", nameClass[0]);
$(".clase1").removeClass();
var nameClass=document.getElementsByClassName("clase1");
console.log("before", nameClass[0]);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="clase1">I am Div with class="clase1"</div>

Respondido el 18 de enero de 17 a las 15:01

Tuve un problema similar. En mi caso, en los elementos deshabilitados se aplicó esa clase aspNetDisabled y todos los controles deshabilitados tenían colores incorrectos. Entonces, usé jquery para eliminar esta clase en cada elemento / control que no quiero y todo funciona y se ve muy bien ahora.

Este es mi código para eliminar la clase aspNetDisabled:

$(document).ready(function () {

    $("span").removeClass("aspNetDisabled");
    $("select").removeClass("aspNetDisabled");
    $("input").removeClass("aspNetDisabled");

}); 

contestado el 14 de mayo de 14 a las 15:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.