数据属性中区分大小写

时间:2013-10-29 08:35:53

标签: javascript jquery html custom-data-attribute

嗯,一定是迟到了,我的大脑麻木了。为什么jQuery不能识别数据属性中的区分大小写?我遇到了这个恼人的问题:

HTML:

<a data-showId="12345">Test 1</a>

使用Javascript:

console.log($('a').data('showId'));
console.log($('a').data('showid'));

第一行未定义,第二行正确返回 12345 。我认为它应该在第一行正确返回,在第二行未定义。那么它是否意味着所有data-attr必须是小写的?

请在此处查看http://jsfiddle.net/qhoc/7dExt/1/

1 个答案:

答案 0 :(得分:8)

我认为这与data-*明确阻止数据密钥具有大写字母A到Z字母这一事实有关。

  • 该名称不得以xml开头,无论这些字母使用何种情况;
  • 名称不得包含任何分号(U + 003A);
  • 该名称不得包含大写字母A至Z字母。

在data- *命名方案中,可以使用密钥data-show-id在javascript中访问像showId这样的数据属性,因为这个限制使用大写字母似乎在密钥中受到限制

另外read

  

HTML文档中HTML元素的所有属性都是ASCII-lowercased   自动,因此对ASCII大写字母的限制不会   影响这些文件