是的,也有类似的问题,但它们是关于jquery添加小写属性的,如:jQuery中的attr()是否强制小写?
但我有不同的情况。下面是我的HTML5代码:
<tr class='projectRow' data-projectId='34'>注意,这是camelCase。现在,这个代码不起作用了:
//"this" points to a child element
$id = $(this).closest('.projectRow').data('projectId');//undefined但如果我用小写表示:
$(this).closest('.projectRow').data('projectid');它起作用了。
当我查看源代码时,它显然是"projectId“(camelCase),但是在chrome -> dev tools ->元素中,则是"projectid”(小写) o_O
难怪jquery不能得到这个值,但是Chrome为什么要这样做呢?以前我做过类似的事情数百次,虽然我在"project-id“中使用了类似的东西,而现在,在制作了这么多年的web应用程序之后,我发现了类似这个o_O的东西。
发布于 2016-03-23 11:11:31
编辑
HTML规范状态属性名称不区分大小写,这意味着将它们全部大写为大写就像用小写或camelCase编写它们一样好:
HTML元素的属性名称可以用小写字母和大写字母混合编写,这些字母与本文档的HTML元素部分中给出的属性名称不区分大小写;也就是说,属性名称不区分大小写。
编辑#2
规范的另一部分更明确地声明:
HTML文档中HTML元素上的所有属性名称都会自动降低,因此对ASCII大写字母的限制不会影响这些文档。
原始答案
jQuery指定,如果您想通过camelCase访问属性,那么将它们连字符,以便:
data-project-id="1"是通过$(element).data('projectId');访问的
发布于 2016-03-23 11:17:47
您可以使用".data()“来访问属性值,而不是使用".attr()”,然后可以使用给定的名称引用它;如下所示:
$(element).attr('data-projectId');发布于 2022-02-08 18:20:34
如果您可以使用普通Javascript并使用HTML5,那么这应该是可行的:
element.getAttributeNS(null, 'data-projectId')https://stackoverflow.com/questions/36176474
复制相似问题