object.className或object.getAttribute(" className / class")? [英] object.className or 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(" className / class")?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!