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

Con*_*eak 23 html jquery custom-data-attribute jquery-data

html对象:

 <div data-myAttribute="test"></div>
Run Code Online (Sandbox Code Playgroud)

代码:

 var $o = $("div");

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

如何保留属性的大小写?

j08*_*691 37

无论如何,有效的HTML数据属性不能包含大写字符:

W3:

自定义数据属性是no namespace中的属性,其名称以字符串"data-"开头,连字符后至少有一个字符,与XML兼容,并且不包含U + 0041到U + 005A范围内的字符(拉丁文大写字母A到拉丁文大写字母Z).


Sci*_*ter 13

你不能.HTML5中的属性名称始终为小写.


A. *_*lff 10

如果您的目标是myAttribute作为dataset财产的关键,您应该使用data-my-attribute:

<div data-my-attribute="test"></div>
Run Code Online (Sandbox Code Playgroud)

请参阅以下有关camelCased规则的链接:https: //developer.mozilla.org/en-US/docs/Web/API/HTMLElement.dataset

PS:正如Izkata评论的那样:

对于其他人的参考,jquery也进行转换,使得$ div.data('my-attribute')返回与$ div.data('myAttribute')相同的东西.vanilla javascript数据集属性不执行此操作.

  • 作为其他人的参考,jquery也进行转换,使得`$ div.data('my-attribute')`返回与`$ div.data('myAttribute')`相同的东西.vanilla javascript`dataset`属性不会这样做. (2认同)

Gon*_*ing 5

作为@A. Wolff的答案的附录,--如果您想要首字母大写,您可以将 a应用于数据属性名称。

<div data--my-attribute="test"></div>
Run Code Online (Sandbox Code Playgroud)

将导致数据键为 MyAttribute