2

当你有一个没有设置类名的 HTML 元素时,HTMLElement className 属性的值是什么?我的第一个想法是它是未定义的,但我发现在 FF 中它只是一个空字符串。我的问题是 - 我可以在所有当前和未来的浏览器中依赖这种行为吗?那是某些规范的一部分,还是只是另一种浏览器技巧,以避免写得不好的代码中的错误?

4

2 回答 2

4

默认情况下,它总是一个空字符串(特别是aDOMString),是的,你可以相信它不是null/ undefined

真正重要的是getAttribute()定义

返回值 DOMString
字符串形式 的Attr值,如果该属性没有指定值或默认值,则返回空字符串。

...它实际上只是您要撤回的属性,因此在两种情况下都是相同的行为,接口只是指定了这些属性。

于 2010-12-14T16:16:17.333 回答
4
interface HTMLElement : Element {
           attribute  DOMString            id;
           attribute  DOMString            title;
           attribute  DOMString            lang;
           attribute  DOMString            dir;
           attribute  DOMString            className;
};

http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html.html

还可以查看DOMString的定义。

所以应该是安全的。

于 2010-12-14T16:17:45.817 回答