objet.nom de la classe ou de l'objet.getAttribute(“nom de la classe/class”)?

Entre ces deux :

Javascript

function setCss(object, css) {
    return (object.className = css);
}
function getCss(object, css) {
    return object.className;
}

Ou

function getCss2(object)
{   
    if (object.getAttribute("className")) {
        return object.getAttribute("className");
    }
    return object.getAttribute("class");
}


function setCss2(object, cssclass)
{        
    if (object.getAttribute("className")) {
        return object.setAttribute("className",cssclass);
    }
    object.setAttribute("class",cssclass);
}

HTML

<a href="#" onClick="setCss(this, 'newclass')" />
<a href="#" class="something" onClick="alert(getCss(this))" />
<a href="#" onClick="setCss2(this, 'newclass')" />
<a href="#" class="something" onClick="alert(getCss2(this))" />

La version semble fonctionner dans IE8, FF4, Chrome, Opera et Safari. (jsFiddle (amélioré) démo)

Qui est le meilleur-utilisation pratique et pourquoi? Avez-vous jamais rencontré de problème avec la version?

OriginalL'auteur Kraz | 2011-07-04