Agregar y eliminar múltiples clases en jQuery

135

Estoy tratando de agregar y eliminar varias clases en un campo de texto haciendo clic en diferentes botones de radio. No puedo eliminar las clases no deseadas mientras cambio entre diferentes botones de radio.

Mi código para esto es:

// For 1st radio button
if (actionUrl == "search-client-by-id") {
    $("#req").removeClass("validate[required,custom[onlyLetterNumber],maxSize[20],custom[onlyLetterSp]]")
             .addClass("validate[required,custom[onlyNumberSp]]");
}
// For 2nd radio button
else if (actionUrl == "search-client-by-name") {    
    $("#req").removeClass("validate[required,custom[onlyNumberSp]]")
             .addClass("validate[required,custom[onlyLetterNumber],maxSize[20],custom[onlyLetterSp]]");
}
Raman
fuente

Respuestas:

273

Puedes separar varias clases con el espacio:

$("p").addClass("myClass yourClass");

http://api.jquery.com/addClass/

Headshota
fuente
1
He encontrado una solución para esto, cada vez que uso solo .removeClass () y no necesito escribir ningún nombre de clase en removeClass para eliminar todas las clases agregadas y agregar cualquier clase por elección. Sí, está funcionando ...!
Raman
3
El uso de .removeClass () [sin parámetros] elimina todas las clases del objeto jQuery.
Ahmet
8

Agregar múltiples clases:

$("p").addClass("class1 class2 class3");

o en cascada:

$("p").addClass("class1").addClass("class2").addClass("class3");

Muy similar también para eliminar más clases:

$("p").removeClass("class1 class2 class3");

o en cascada:

$("p").removeClass("class1").removeClass("class2").removeClass("class3");
Andrea_dev
fuente
Entonces, ¿qué quieres eliminar de una clase de múltiples $("p")?
batir
En mi ejemplo, me refiero a todos los párrafos de la página, pero es solo un ejemplo. Puede identificar un artículo específico con una identificación u otra clase.
Andrea_dev
0

La forma más fácil de agregar un nombre de clase usando javascript. Puede ser útil cuando te .siblings()portas mal.

document.getElementById('myId').className += ' active';
Argoden
fuente
55
Esta respuesta no es relevante para la pregunta, que solicitó explícitamente jQuery.
cyberbit
1
Y deberías usar classList de todos modos