jQuery是否在内部将HTML5数据属性键转换为小写?

时间:2014-01-08 01:07:55

标签: javascript jquery html5

我试图尽可能地将我的JavaScript编码风格与我的Zend编码风格相符合,这是使用camelCase。因此,在我的HTML5数据属性中,我将命名它们,如下例所示:

<button class="action" data-actionClass="user" data-actionMethod="delete" data-actionRequest="/user/delete/user-id/1" data-actionComplete="{reload:users}">Delete User #1</button>
<div id="users" data-reloadRequest="/user/index"> ... </div>

利用Jquery进行操作的非常不引人注目的方式,但是当我调用$('。action')。data()时,属性名称将转换为小写。

对此有任何解决方法吗?

我从不认为JavaScript变量应该包含破折号,我无法理解为什么jQuery会在内部为我做这个?或者也许是HTML5?

2 个答案:

答案 0 :(得分:37)

如果您使用

data-action-method="delete"

然后您可以使用

访问该属性
$('.action').data('actionMethod')

这是HTML5 DOM API

的一部分
  

自定义数据属性转换为   DOMStringMap条目具有以下规则:

     
      
  • 删除任何短划线(U + 002D);
  •   
  • 短划线(U + 002D)之后的任何字母,在删除之前,都以大写字母设置。
  •   

答案 1 :(得分:4)

首先,请参阅JQuery源代码的this part,它假设您具有小写属性。

其次,按照惯例,所有HTML5属性都应为小写,请参阅:http://www.htmlbasictutor.ca/html-tag-attributes.htm

最后,请注意,如果您坚持使用大写字母,可能会遇到更多问题,请参阅Django: Unable to add UPPERCASE attribute name in HTML input element