jQuery dataとattrで値が変わる


またしてもjQueryネタ。

1
2
<div id="data1" data-value="0100"></div>
<div id="data2" data-value="0x01"></div>

っていう要素があるとする。
この要素のdata-valueを取得する方法によって、値が変わってしまって困ることがある。

1
2
3
4
5
6
7
8
9
10
11
$("#data1").data('value');
// -> 100 になる

$("#data1").attr('data-value');
// -> "0100" になる

$("#data2").data('value');
// -> 1 になる

$("#data2").attr('data-value');
// -> "0x01" になる

$().data()で取得したときに変だったら、$().attr()で取得してしまおう。