5

もう遅いに違いないし、脳が麻痺してしまった。jQueryがデータ属性で大文字と小文字を区別しないのはなぜですか? 私はこの厄介な問題に直面しました:

HTML:

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

Javascript:

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

最初の行は未定義で、2 番目の行は12345を正しく返しました。最初の行で正しく返され、2行目で未定義になるはずだと思いました。では、すべての data-attr は小文字でなければならないということですか?

ここでチェックしてくださいhttp://jsfiddle.net/qhoc/7dExt/1/

4

1 に答える 1

11

これは、 data-*がデータ キーに大文字の A から Z の文字を明示的に禁止しているという事実に関係していると思います。

  • これらの文字に大文字と小文字が使用されていても、名前を xml で始めてはなりません。
  • 名前にセミコロン (U+003A) を含めることはできません。
  • 名前に大文字の A から Z の文字を含めることはできません。

data-* 命名スキームではdata-show-id、 key を使用して JavaScript でアクセスできるdata 属性のようなものshowIdです。この制限により、大文字の使用はキーで制限されているようです。

また読む

HTML ドキュメント内の HTML 要素のすべての属性は自動的に ASCII 小文字に変換されるため、ASCII 大文字の制限はそのようなドキュメントには影響しません

于 2013-10-29T08:41:00.397 に答える