【问题标题】:DOM HTMLElement className property when the element has no class name set元素未设置类名时的 DOM HTMLElement className 属性
【发布时间】:2011-05-25 09:17:33
【问题描述】:

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

【问题讨论】:

    标签: javascript html dom classname specifications


    【解决方案1】:

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

    真正重要的是getAttribute() definition

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

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

    【讨论】:

    • 这是在规范中定义的吗?
    • 你能详细说明一下吗?
    • @avok00 - 我添加了指向特定类型的链接,@Oded - 是的,这就是所有 DOMString 属性的行为方式。
    【解决方案2】:
    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的定义。

    所以它应该是安全的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-18
      • 2021-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-20
      • 1970-01-01
      相关资源
      最近更新 更多