Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Cómo se puede cambiar la clase CSS de un elemento mediante JavaScript

12 de octubre de 2011

Me gustaría cambiar la clase CSS de un elemento cuando se pincha sobre el. ¿Cómo puedo conseguirlo mediante el evento onclick de JavaScript?

Estás leyendo una traducción autorizada de la pregunta Change an element's CSS class with JavaScript planteada por Nathan Smith en StackOverflow.

Respuestas

#1

Suponiendo que tu código HTML sea el siguiente:

<a id="boton" class="...">Pincha aquí</a>

Si utilizas jQuery en tu aplicación, la solución es muy sencilla:

$('#boton').click(cambiarClase);
 
function cambiarClase()
{
    // cambiar la clase CSS aquí
}

Como no dices qué es lo que quieres cambiar exactamente en la clase CSS del elemento, estas son algunas de las opciones que tienes:

// añadir una clase al elemento
$('#boton').addClass('nueva_clase');
 
// eliminar una clase del elemento
$('#boton').removeClass('clase_existente');
 
// comprobar si el elemento tiene una clase
if ( $('#boton').hasClass('clase_buscada') ) { ... }
 
// añadir clase si no existía o eliminar clase si ya existía
$('#boton').toggleClass('clase_a_comprobar');

Si utilizas un navegador moderno que soporte HTML5, puedes utilizar la propiedad classList de JavaScript que permite manipulaciones similares a las que proporciona jQuery:

// añadir una clase
document.getElementById("boton").classList.add('clase_css');
 
// eliminar la clase indicada
document.getElementById("boton").classList.remove('clase_css');
 
// comprobar si el elemento contiene esa clase
if ( document.getElementById("boton").classList.contains('clase_css') )
 
// añadir clase si no existía; eliminarla si ya existía
document.getElementById("boton").classList.toggle('clase_css');

Si no puedes utilizar ni jQuery ni ningún navegador HTML5 moderno, echa un vistazo a las soluciones alternativas que encontrarás en esta página.

@javiereguiluz

7 febrero 2015, 19:41