Bueno, sé que con algunas acciones de jQuery, podemos agregar muchas clases a un div en particular:
<div class="cleanstate"></div>Digamos que con algunos clics y otras cosas, el div obtiene muchas clases
<div class="cleanstate bgred paddingleft allcaptions ..."></div>Entonces, ¿cómo puedo eliminar todas las clases excepto una? La única idea que se me ha ocurrido es esta:
$('#container div.cleanstate').removeClass().addClass('cleanstate'); Mientras que removeClass() mata todas las clases, el div se estropea, pero al agregar justo después de eso addClass('cleanstate') vuelve a la normalidad. La otra solución es poner un atributo de ID con las propiedades base de CSS para que no se eliminen, lo que también mejora el rendimiento, pero solo quiero saber otra solución para deshacerme de todo excepto ".cleanstate"
Pregunto esto porque, en el script real, el div sufre varios cambios de clases.
En lugar de hacerlo en 2 pasos, puede restablecer el valor completo de una vez con attr sobrescribiendo todos los valores de clase con la clase que desea:
jQuery('#container div.cleanstate').attr('class', 'cleanstate');Muestra: http://jsfiddle.net/jtmKK/1/
Con JavaScript simple y antiguo, no JQuery:
document.getElementById("container").className = "cleanstate";