Case sensitive in data attribute

天大地大妈咪最大 提交于 2020-01-10 05:13:10

问题


Well it must be late and my brain got numb. How come jQuery doesn't recognize case sensitive in data attribute? I faced this annoying problem:

HTML:

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

Javascript:

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

The first line is undefined and second returned 12345 correctly. I thought it supposed to returned correctly in first line and undefined in second. So does it mean all data- attr must be lowercase?

Check it out here http://jsfiddle.net/qhoc/7dExt/1/


回答1:


I think it has to do with the fact that data-* explicitly prevents the data key from having capital A to Z letters.

  • the name must not start with xml, whatever case is used for these letters;
  • the name must not contain any semicolon (U+003A);
  • the name must not contain capital A to Z letters.

In the data-* naming scheme, a data attribute like data-show-id will be accessible in javascript using the key showId, because of this limitation the use of capital letters seems to be restricted in the key.

Also read:

All attributes on HTML elements in HTML documents get ASCII-lowercased automatically, so the restriction on ASCII uppercase letters doesn't affect such documents



来源:https://stackoverflow.com/questions/19653266/case-sensitive-in-data-attribute

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!