[jQuery] .data() で整数が丸められることがあるので .attr() で取得する
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
- tokkono.cute.coocan.jp/blog/slow/index.php/xhtmlcss/html5-data-attributes-vs-jquery-data-api/