【问题标题】:Case sensitive in data attribute数据属性区分大小写
【发布时间】:2018-03-23 22:06:55
【问题描述】:

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

HTML:

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

Javascript:

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

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

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

【问题讨论】:

  • 您可以使用:$('a').attr('data-showId'),不区分大小写

标签: javascript jquery html custom-data-attribute


【解决方案1】:

我认为这与 data-* 明确禁止数据键包含大写字母 A 到 Z 的事实有关。

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

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

还有read:

HTML 文档中 HTML 元素的所有属性都以 ASCII 小写形式显示 自动,因此对 ASCII 大写字母的限制不会 影响此类文件

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-12
    • 2012-07-15
    • 1970-01-01
    • 2013-07-31
    相关资源
    最近更新 更多