Jquery .data()
を使用してデータ属性を取得する方法その場合、html5 data-*
属性は小文字とキャメルケースに変換されますか?カスタム属性を使用してデータを保存する際に従うべき主なルールは何ですか?
<input type="button" class="myButton" value="click me" data-productId="abc"/>
<input type="button" class="myButton" value="click me" data-product-id="abc"/>
<input type="button" class="myButton" value="click me" data-PRODUCT-ID="abc"/>
<input type="button" class="myButton" value="click me" data-ProDUctId="abc"/>
HTML5では、独自のカスタム属性を作成してデータを保存できます。カスタム属性は、変数名など、好きな名前にできますが、Wordの「データ」を先頭に追加する必要があり、単語はダッシュで区切られます。 「foo」、「bar」、「foo bar」データ属性を次のように入力に追加できます。
_<input type="button" class="myButton" value="click me" data-foo="bar"
data-bar="baz" data-foo-bar="true">
_
jQueryの .data()
メソッドを使用すると、_data-*
_属性にアクセスできます。
バージョン1.4までのjQueryを使用すると、データ属性は大文字と小文字を区別しませんでした。したがって、
_<input type="button" class="myButton" value="click me" data-productId="abc"/>
_
でアクセス可能になります
_$('.myButton').data('productId');
_
jQuery 1.5および1.6
ただし、jQuery 1.5および1.6の変更は、データ属性が小文字に強制されるようになったことを意味します。
_<input type="button" class="myButton" value="click me" data-productId="abc"/>
_
でのみアクセス可能
_$('.myButton').data('productid');
_
_data-*
_属性は、要素のデータセットオブジェクトのプロパティになります。新しいプロパティ名は次のように導出されます。
data-
_プレフィックスは、属性名から取り除かれます。元の属性名_data-product-id
_は、データセットオブジェクトでproductId
に変換されていることに注意してください。 _data-*
_属性に名前を付けるときは、名前変換プロセスを考慮する必要があります。属性名は小文字に変換されるため、大文字の使用は避けてください。次の例は、いくつかの属性名がデータセットプロパティにどのように変換されるかを示しています。
_"data-productId" translates to "productid"
"data-product-id" translates to "productId"
"data-PRODUCT-ID" translates to "productId"
"data-ProDUctId" translates to "productid"
_
注:
alt
属性の方が適しています。data-*
_属性をサードパーティのアプリケーションで使用すべきではないことが明確に規定されています。これは、検索エンジンなどのプログラムが検索結果を準備する際にカスタムデータ属性に依存しないことを意味します。HTML5でカスタム属性を実装すること自体は技術的に複雑ではありませんが、実際の難しさは、独自のプロジェクトでそれらを使用するのが適切かどうかを選択することです。最後に、ページが依存する機能に対してデータセットアプローチの使用を開始するのはまだ少し早いことを忘れないでください。サポートされていないブラウザには代替手段を必ず提供してください。