【问题标题】:why class is not considered as a property of HTMLElement为什么类不被视为 HTMLElement 的属性
【发布时间】:2019-10-10 21:13:17
【问题描述】:

我是 html/html5 新手,只是一个关于 HTMLElement 属性的问题。

例如HTMLInputElementnametypevalue等属性,所以我认为每个可用的属性都是元素的属性,当然类属性应该是属性,因为我们可以写:

<input class="XXX" type="submit" value="Submit"/>

但根据下面 MDN 的链接,class 不是 HTMLInputElement 的属性

https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement

我们可以看到class不在属性列表中。

那么什么样的属性可以被认为是properties呢?

【问题讨论】:

  • 因为与 ECMAScript 3 兼容,其中 class 是(未来的)保留字,不能是属性名称(而是 className)。同样的原因 &lt;label&gt;for 属性具有相应的 htmlFor 属性。见What is the difference between class and className in JavaScript?className 仍然不在 HTMLInputElement 原型上,因为它在更通用的 Element 原型上,HTMLInputElement 继承自该原型。

标签: html dom


【解决方案1】:

HTMLInputElement 页面的 MDN 页面有一个部分 inheritance,这表明它继承自 HTMLElement,而 HTMLElement 本身继承自 Element(然后是 Node 等):

在更抽象的层次上定义的一切都在更具体的层次上可用,接口Element定义了一个属性className,看起来就是你想要的。

还有一个相关的属性classList,在很多情况下,如果不是更多的话,它也同样有用。

【讨论】:

    猜你喜欢
    • 2017-08-15
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 2016-04-25
    • 1970-01-01
    • 2017-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多