html对象:
<div data-myAttribute="test"></div>
代码:
var $o = $("div");
$.each($o.data(),function(k,v){
console.log(k);
//writes 'myattribute' instead of 'myAttribute'
});
如何保留属性的大小写?
答案 0 :(得分:37)
无论如何,有效的HTML数据属性不能包含大写字符:
来自W3:
自定义数据属性是没有名称空间的名称空间中的属性 以字符串“data-”开头,后面至少有一个字符 连字符,与XML兼容,不包含该范围内的字符 U + 0041至U + 005A(拉丁文大写字母A至拉丁文大写字母Z)。
答案 1 :(得分:13)
你不能。 HTML5中的属性名称始终为小写。
答案 2 :(得分:10)
如果您的目标是将myAttribute
定位为dataset
属性的关键字,则应使用data-my-attribute
:
<div data-my-attribute="test"></div>
请参阅以下有关camelCased规则的链接: https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.dataset
PS:正如Izkata所评论的那样:
对于其他人的参考,jquery也进行转换 $ div.data(&#39; my-attribute&#39;)返回相同的内容 $ div.data(&#39; myAttribute&#39;)。 vanilla javascript数据集属性 不要这样做。
答案 3 :(得分:4)
作为@A. Wolff
答案的附录,如果您需要大写字母,可以将--
应用于数据属性名称。
<div data--my-attribute="test"></div>
将导致数据键为MyAttribute