Aggiungere o rimuovere classi in javascript

MarcoGrazia

Utente Attivo
15 Dic 2009
785
16
18
58
Udine
www.stilisticamente.com
Ciao, vi spiego il problema: ogni giorno mi devo scervellare con un centinaio di pc con su montato un numero eterogenero di browser IE, dall'8 ( ma ho detto in amministrazione, che non me ne frega più nulla di chi li tiene così ) a IE 11 ( e si, lavoriamo su Windows 7 ).
Così mi tocca inventarmi sempre qualcosa per far funzionare programmi in javascript legati a funzionalità moderne che non vengono viste da questi browser, come ad esempio classList.remove.
In effetti IE9 classList lo capisce bene cos'è, accetta il metodo add per aggiungere una classe, ma non sa come toglierla.
Per questa mattina, ho aggiustata la cosa alla McGiver, cioè con sputo e gomma americana, ma non può andare bene.
Qualcuno ricorda come si faceva nei vecchi browser di casa Microsoft ad eggiungere e togliere una classe da un alemento?
Non ditemi di usare jquery, perché in questa fase non posso.
 

MarcoGrazia

Utente Attivo
15 Dic 2009
785
16
18
58
Udine
www.stilisticamente.com
Risolto :D
Create due funzioni che fanno proprio il lavoro richiesto
JavaScript:
//  Metodi creati per ovviare alle deficienze di IE
function addClass( element, className )
{
    element = document.getElementById( element );
    element.className += className;
}
function removeClass( element, className )
{
    element = document.getElementById( element );
    var replaced = new RegExp( "(^|\\s)" + className + "(\\s|$)" );
    var klass = element.className;
    
    element.className = klass.replace( replaced, '' );
}
si richiamano in modo molto semplice:
HTML:
<div id="identity"></div>
JavaScript:
.........
addClass( 'identity', 'nomeclasse' );
removeClass( 'identity', 'nomeclasse' );