我试图尽可能地将我的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?
答案 0 :(得分:37)
如果您使用
data-action-method="delete"
然后您可以使用
访问该属性$('.action').data('actionMethod')
的一部分
自定义数据属性转换为 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