kon*_*irm 5 html javascript jquery
是的,也有类似的问题,但是它们与jquery一样添加小写字母属性,如下所示:jQuery中的attr()是否强制小写字母?
但是我有不同的情况。这是我的HTML5代码段:
<tr class='projectRow' data-projectId='34'>
Run Code Online (Sandbox Code Playgroud)
请注意,这是camelCase。现在,此代码不起作用:
//"this" points to a child element
$id = $(this).closest('.projectRow').data('projectId');//undefined
Run Code Online (Sandbox Code Playgroud)
但是,如果我将其小写:
$(this).closest('.projectRow').data('projectid');
Run Code Online (Sandbox Code Playgroud)
有用。
当我查看源代码时,它显然是“ projectId”(camelCase),但是在chrome->开发工具->元素中时,则是“ projectid”(小写)o_O
难怪jQuery无法获得此值,但是Chrome为什么要这样做呢?我之前做过数百次类似的事情,虽然在“ project-id”中使用了-,但是经过了多年的Web应用程序开发,我发现了类似o_O的东西。
编辑
HTML规范规定属性名称不区分大小写,这意味着将它们全部写成大写与全部写成小写或驼峰式一样好:
HTML 元素的属性名称可以使用小写和大写字母的任意组合来编写,这些字母与本文档的 HTML 元素部分中给出的属性名称不区分大小写地匹配;也就是说,属性名称不区分大小写。
编辑#2
规范的另一部分更明确地指出:
HTML 文档中 HTML 元素上的所有属性名称都会自动变为 ASCII 小写,因此对 ASCII 大写字母的限制不会影响此类文档。
原答案
jQuery 指定,如果您想通过驼峰命名法访问属性,则将它们连字符连接起来,如下所示:
data-project-id="1"是通过访问$(element).data('projectId');
| 归档时间: |
|
| 查看次数: |
4197 次 |
| 最近记录: |