object.className或object.getAttribute(" className / class")? [英] object.className or object.getAttribute("className/class")?

查看:87
本文介绍了object.className或object.getAttribute(" className / class")?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

两者之间:

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





Or

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



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))" />

这两个版本似乎都适用于IE8,FF4,Chrome,Opera和Safari。 ( jsFiddle(改进)演示

Both version seems to work in IE8, FF4, Chrome, Opera and Safari. (jsFiddle (improved) demo)

哪一个是最佳使用方法以及为什么?您是否遇到过任何一个版本的问题?

Which one is best-usage practice and why? Did you ever run into any issue with either version?

推荐答案

getAttribute(class)更通用,因为它可以用于不同类型的文档。在XML文档中,最重要的是。包括SVG。

getAttribute("class") is more universal, because it can be used in different types of documents. In XML documents, most importantly. Including SVG.

element.className 仅适用于HTML。它在 DOM 2级HTML规范<中进行了描述/ a>。

element.className works only in HTML. It is described in the DOM level 2 HTML specs.

这篇关于object.className或object.getAttribute(&quot; className / class&quot;)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆