Recentemente in JavaScript è stata introdotta una nuova caratteristica che va a colmare un vuoto esistente nella gestione delle classi CSS degli elementi. Questa caratteristica sono le API classList.

Consideriamo il seguente elemento HTML:


<div id="test" class="a b c"></div>

Utilizzando le nuove API possiamo scrivere:


var test = document.getElementById( "test" );
console.log( test.classList );
// [ "a", "b", "c" ]

L'output può variare in base al browser, ma ciò che viene restituito è sempre un'istanza della DOMTokenList. Quest'interfaccia dispone di diversi metodi e proprietà per lavorare con le classi:

Alcuni esempi:


test.classList.add( "d" );
console.log( test.classList ); // [ "a", "b", "c", "d" ]
console.log( test.classList.contains( "k" ) ); // false
console.log( test.classList.item( 0 ) ); // "a"

Per testare se un browser supporta queste API potete verificare la presenza dell'oggetto classList su un elemento HTML:


if( "classList" in document.createElement( "div" ) ) {
    // classList API disponibile
}