【发布时间】:2019-10-10 21:13:17
【问题描述】:
我是 html/html5 新手,只是一个关于 HTMLElement 属性的问题。
例如HTMLInputElement有name、type、value等属性,所以我认为每个可用的属性都是元素的属性,当然类属性应该是属性,因为我们可以写:
<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)。同样的原因<label>的for属性具有相应的htmlFor属性。见What is the difference betweenclassandclassNamein JavaScript?。className仍然不在HTMLInputElement原型上,因为它在更通用的Element原型上,HTMLInputElement继承自该原型。