Alors qu' setAttribute
est sympa, il y a un niveau moyen de faire cela dans la plupart des navigateurs:
htmlElement.className = 'someClass';
Faire sur de nombreux éléments, vous aurez besoin d'un navigateur croix de solution:
function getElementsByClassName( className, context, tagName ) {
context = context || document;
if ( typeof context.getElementsByClassName === 'function' )
return context.getElementsByClassName( className );
if ( typeof context.getElementsByTagName !== 'function' )
return [];
var elements = typeof tagName === 'string' ? context.getElementsByTagName( tagName ) :
context.getElementsByTagName('*'),
ret = [];
for ( var i = 0, il = elements.length; i < il; i++ )
if ( elements[ i ].className.match( className ) )
ret.push( elements[ i ] );
return ret;
}
var elements = getElementsByClassName('someClass');
for ( var i = 0, il = elements.length; i < il; i++ )
elements[ i ].className = 'newClass';
Vous pouvez remplacer la ligne:
if ( elements[ i ].className.match( className ) )
Avec une certaine Expression Régulière, mais vous aurez à échapper les caractères spéciaux dans ce cas.