Tengo un div con id="a"
que puede tener cualquier cantidad de clases asociadas, de varios grupos. Cada grupo tiene un prefijo específico. En el javascript, no sé qué clase del grupo está en el div. Quiero poder borrar todas las clases con un prefijo dado y luego agregar una nueva. Si quiero eliminar todas las clases que comienzan con "bg", ¿cómo hago eso? Algo como esto, pero que realmente funciona:Eliminar todas las clases que comienzan con una cierta cadena
$("#a").removeClass("bg*");
Cuidado con este. El límite de palabras se divide en el carácter del tablero ('-') y puntos y otros, por lo que los nombres de clase como "bg.a", "bg-a" etc. no se eliminarán, sino que se reemplazarán por ".a", "-a", etc. Así que si tiene nombres de clase con caracteres de puntuación, puede tener problemas simplemente ejecutando una simple sustitución de expresiones regulares. Aquí hay un hilo SO [sobre la definición de límite de palabras] (http://stackoverflow.com/questions/1324676/what-is-a-word-boundary-in-regexes) –
La respuesta de Kabir Sarin a continuación con split ('') y indexOf es mejor IMO porque no provocará la aparición de esas clases de "zombies" especiales. –
Este método todavía se puede usar con una mejor expresión regular, como la que se encuentra aquí: http://stackoverflow.com/a/2644364/1333402 – ssmith