我有一个带属性的自定义元素:
class MyElement extends HTMLElement {
...
static get observedAttributes() {
return ["camelCaseAttribute"];
}
set camelCaseAttribute(a) {
this._a = a;
}
...
}
我在我的HTML中使用它:
<my-element camelCaseAttribute="blubb"></my-element>
在camelCase中编写属性时未设置属性camelCaseAttribute
,但是在没有大写字母的情况下编写它是有效的。为什么呢?
答案 0 :(得分:5)
在 HTML Living Standard, Section 4.13.3 Core Concepts :
中4.13.3核心概念
与元素的作用相关的任何无名称空间属性(由元素的作者确定)可以在autonomous custom element,上指定,只要属性名称为XML-compatible并且不包含ASCII upper alphas 。例外是
is
属性,不能在autonomous custom element上指定(如果是,则无效)。
HTML Living Standard中定义了自定义元素的无名称空间属性必须是XML兼容的,没有ASCII大写字母,因此您的属性不能是camelCased。
答案 1 :(得分:1)
此链接可能有所帮助:HTML spec says this about data attributes
自定义数据属性是no namespace中的一个属性,其名称以字符串&#34开头;数据 - &#34;,在连字符后至少有一个字符,与XML兼容,并且不包含大写ASCII字母