独自データ属性 - グローバル属性 - HTML5 タグリファレンス - HTML5.JP

独自データ属性は、名前空間に属さない属性で、その名前は文字列 "data-" で始まり、ハイフンの後に少なくとも一文字が続きます。これは XML 互換で、ASCII 大文字 を含みません。

(中略)

すべての HTML 要素に対して、独自データ属性をいくつでも、どんな値でも指定することができます。



使用例

<div id="userName" data-userId="1234">Ippei Suzuki</div>

これを取得するには、 関数data()を使うと便利です。

$('#userName').data('userId');

注意

data()は、もともとは要素にデータを付与しそれを取得するための関数で、HTMLのパースとは関係がありません。付与されたデータはjQueryのキャッシュデータとして保存されます。一方で属性を取得する関数attr()の方は、キャッシュは利用をせずHTMLを読みに行くので、この2つを同時に使うと混乱します。具体的には、atr()で更新したデータがdata()で取得出来ないなど。

$('#userName').data('userId'); //1234
$('#userName').attr('data-userId', '5678');
$('#userName').data('userId'); //1234 ← キャッシュを読み込む
$('#userName').attr('data-userId'); //5678 ← 属性を見る

その辺りは気をつけて上手いこと処理してやる必要があるようです。


参考

独自データ属性 - グローバル属性 - HTML5 タグリファレンス - HTML5.JP
jQueryのdata-*属性キャッシュ仕様と対策