我尝试使用data-userId
,但萤火虫将其显示为data-userid
(带有小写“i”)。看来我们不应该在自定义数据属性中使用大写字母。HTML5 自定义数据属性的命名规则是什么?请让我知道使用它的任何最佳实践。
3 回答
直接来自规范:
data-*
3.2.3.9 使用属性嵌入自定义不可见数据自定义数据属性是无命名空间中的属性,其名称以字符串“
data-
”开头,连字符后至少有一个字符,与XML 兼容,并且不包含大写 ASCII 字母。
(重点补充)
XML 兼容是什么意思?
如果属性名称与XML 中定义的产生式匹配并且不包含 U+003A 冒号字符 (:) ,则称它们是XML 兼容的。
Name
什么是Name
生产规则?
[4]
NameStartChar
::=":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
[4a]NameChar
::= [5] ::=NameStartChar
| "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
Name
NameStartChar
(
NameChar
)*
我不知道是哪个规则,我在上面的帖子的规范中没有找到它,但是如果你想使用 jquery data('userId') 获取 camelCase 数据项,你必须添加属性 data-user-id=' xx'
数据属性名称必须至少有一个字符长,并且必须以“data-”为前缀。它不应包含任何大写字母。
数据属性的名称必须以字符串“data-”开头,并且必须在使用任何 HTML 命名约定的连字符后至少包含一个字符。
自定义数据属性旨在存储页面或应用程序私有的自定义数据,没有更合适的属性或元素。
完整的指南可以在W3 推荐中找到。