如何保留数据属性的大小写?

时间:2014-12-08 13:44:46

标签: jquery html custom-data-attribute jquery-data

html对象:

 <div data-myAttribute="test"></div>

代码:

 var $o = $("div");

 $.each($o.data(),function(k,v){
    console.log(k); 
    //writes 'myattribute' instead of 'myAttribute'
 });

如何保留属性的大小写?

4 个答案:

答案 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