5

好吧,一定是晚了,我的大脑已经麻木了。为什么 jQuery 不识别数据属性中的大小写敏感?我遇到了这个烦人的问题:

HTML:

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

Javascript:

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

第一行未定义,第二行正确返回12345。我认为它应该在第一行正确返回,而在第二行未定义。那么这是否意味着所有数据属性都必须小写?

在这里查看http://jsfiddle.net/qhoc/7dExt/1/

4

1 回答 1

11

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

  • 名称不能以 xml 开头,无论这些字母使用什么大小写;
  • 名称不得包含任何分号 (U+003A);
  • 名称不得包含大写的 A 到 Z 字母。

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

请阅读

HTML 文档中 HTML 元素的所有属性都会自动变为 ASCII 小写字母,因此对 ASCII 大写字母的限制不会影响此类文档

于 2013-10-29T08:41:00.397 回答