我最近发现Chrome会将数据属性data-*
转换为小写。
e.g。
<div data-Me="awesome"></div>
将在Chrome开发者工具中转换为<div data-me="awesome"></div>
。
当我用javascript调用属性时:
console.log(e.hasAttribute('data-Me'),e.hasAttribute('data-me'));
都返回 true 。
那么命名数据属性的标准方法是什么?
答案 0 :(得分:17)
您应始终使用小写字符。即使某些浏览器会自动纠正标记中的错误(这就是Chrome在这里为您所做的),但它可能会导致错误并且无效HTML5。 来自MDN:
修改强>
进一步深入了解我发现this:
获取HTML文档中HTML元素的所有属性名称 ASCII-lowercased自动,所以限制ASCII大写 信件不会影响这些文件。
无论如何,我建议您从头开始直接以正确的方式进行。
答案 1 :(得分:1)
HTML5标签和属性是不敏感的。
从浏览器供应商处获取信息毫无意义。相反,您应该直接从源(W3C标准)获取该信息: http://w3c.github.io/html-reference/documents.html#case-insensitivity
您可以使用XHTML或HTML5。从网页加载的角度来看,HTML5目前才有意义。
在HTML语法的文档中: •HTML元素的标记名称可能是 用任何混合的小写和大写字母写成的 不区分大小写的匹配HTML中给出的元素的名称 本文件的要素部分;也就是说,标签名称是 区分的不敏感即可。 •可以编写HTML元素的属性名称 任何混合的小写和大写字母都是 不区分大小写的匹配项中给出的属性的名称 本文档的HTML元素部分;也就是说,属性名称是 区分的不敏感强>