Cambiar el el valor del atributo class con JavaScript

Etiquetas: , ,

Cambiar todas las classes con una nueva o más:

document.getElementById("MyElement").className = "MyClass";

(Puedes agregar más clases separándolas con un espacio)

Agregar clases adicionales sin afectar las existentes:

document.getElementById("MyElement").className += " MyClass";

Eliminar una clase, sin afectar las existentes:

document.getElementById("MyElement").className =document.getElementById("MyElement").className.replace( /(?:^|\s)MyClass(?!\S)/g , '' )

Verificar si una clase ya ha sido aplicada a un elemento:

if ( document.getElementById("MyElement").className.match(/(?:^|\s)MyClass(?!\S)/) )

Asignar estas acciones a eventos:

<script type="text/javascript">// <![CDATA[
    function changeClass()
    {
        // code examples from above
    }

    window.onload = function()
    {
        document.getElementById("MyElement").addEventListener( 'click' , changeClass );
    }
// ]]></script>... <button id="MyElement">My Button</button>

Cambiar clases con JQuery:

$('#MyElement').addClass('MyClass');

$('#MyElement').removeClass('MyClass');

if ( $('#MyElement').hasClass('MyClass') )

jQuery afrece un atajo para aplicar o eliminar una clase, según sea el caso:

$('#MyElement').toggleClass('MyClass');

Asignar una función a un evento onclick jQuery:

$('#MyElement').click(changeClass);

o sin usar un id:

$(':button:contains(My Button)').click(changeClass);

Cambiar clases con HTML5

document.getElementById("MyElement").classList.add('class');

document.getElementById("MyElement").classList.remove('class');

if ( document.getElementById("MyElement").classList.contains('class') )

document.getElementById("MyElement").classList.toggle('class');

5 respuestas a “Cambiar el el valor del atributo class con JavaScript”

  1. eusebio dice:

    ahí está, este tio se nota que hace páginas web, simplemente entrando en este tutorial, no como en otros tutoriales que parece que han aprendido únicamente para explicarlo en una web.

  2. luifel dice:

    Muy bien explicado, excelente.

  3. anthony flor v. dice:

    ok buena

  4. Jesua Cañizares dice:

    Excelente tus aportes, directos, concisos , bien breves. Sencillamente Excelentes.

  5. Leixon dice:

    Excelente aporte amigo. Creo que ha sido el mejor material consultado hasta ahora. Excelente y preciso.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

9 + 6 =