2012-07-12 14 views

Respuesta

48

Javascript estándar:

document.getElementById('foo').className += ' class_two' 

o JQuery:

$('#foo').addClass('class_two'); 
+2

perfecto, gracias amigo. – jared

17

Usted puede usar jQuery.

$('#YourElement').addClass('YourClass'); //add 

$('#YourElement').removeClass('YourClass'); //remove 

$('#YourElement').toggleClass('YourClass'); //toggle 

o JavaScript, si lo desea.

document.getElementById('id').classList.add('YourClass'); //add 
document.getElementById('id').classList.remove('YourClass'); //remove 
+2

Eso es bastante limpio, nunca lo había visto antes, ¿es classList una nueva API?/compatible con navegadores más antiguos? –

+0

No los he comprobado en todos los navegadores, pero pueden funcionar en los principales (últimos) navegadores. – Lion

+0

classList está disponible en la mayoría de los navegadores modernos monhttp: //caniuse.com/#feat=classlist –

3

Puede hacer la vida más fácil con un par de funciones de ayuda:

function addClass(el, className) { 
    var classes = el.className.match(/\S+/g) || []; 

    if (!hasClass(el, className)) { 
    classes.push(className); 
    } 
    el.className = classes.join(' '); 
} 

function hasClass(el, className) { 
    var re = new RegExp('(^|\\s+)' + className + '(\\s+|$)'); 
    return re.test(el.className); 
} 

addClass(document.getElementById('foo'), 'bar') 
7

Comprobar this añadir una clase:

document.getElementById('foo').classList.add("class_two"); 

Siento que esto es una solución mejor.

Cuestiones relacionadas