[jQuery] .data() で整数が丸められることがあるので .attr() で取得する

Pocket

jQuery の .data() メソッドで整数の桁数が多いと丸められることがあるので .attr() で取得すべきということを知りました。

jQuery 1.7.2 の場合

<!-- HTML -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<a href="/xxx" data-id="123456789012345678901234567890" id='link'>Click</a>
> //JavaScript
$('#link').data('id')
1.2345678901234568e+29
 
$('#link').attr('data-id')
"123456789012345678901234567890"

jQuery 1.11.1 の場合

<!-- HTML -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a href="/xxx" data-id="123456789012345678901234567890" id='link'>Click</a>
> //JavaScript
$('#link').data('id')
"123456789012345678901234567890"
 
$('#link').attr('data-id')
"123456789012345678901234567890"

以上です。


参考情報

jQuery.data() | jQuery API Documentation

.attr() | jQuery API Documentation

javascript – Issue with jQuery data() treating string as number – Stack Overflow

意外と要注意 HTML5データ属性とjQuery Data APIの関係まとめ | ゆっくりと…

  1. コメントはまだありません。

  1. トラックバックはまだありません。