这是我的HTML代码
<li class="current" title="some title" data-atype="some type" data-aid="119697371285186601">
Some text
</li>
这是我从firebug / google chrome调试器控制台获得的,
>> $().jquery
"1.7.2"
>> ($('li.current:first')).data('aid')
119697371285186610
>> ($('li.current:first')).attr('data-aid')
"119697371285186601"
我搜索了这个问题,但我找不到问题的确切原因和解决方案。如果有人能帮助我找到解决方案和问题的原因,那将非常有帮助。
提前致谢...
答案 0 :(得分:4)
$.fn.data
试图了解数字类型并将它们转换为整数。然而,在JavaScript中,整数只是浮点数,因此在接近较大值时会变得不那么精确。我坚持使用attr()
,因为它总会返回一个字符串。此处还有一个ticket,但它标有“WONTFIX”。有关JavaScript中大数字限制的详细信息,请参阅this article。
答案 1 :(得分:1)
<ul>
<li class="current" title="some title" data-atype="some type" data-rrr="11969737128518660155555">
Some text
</li>
</ul>
<span></span>
$(document).ready(function(){
$('span').html('DATA ATTRIBUTE: '+$('li.current:first').data('rrr')+ ' <br /> ATTRIBUTE: '+ $('li.current:first').attr('data-rrr'));
});
Output / result:
Some text
DATA ATTRIBUTE: 1.1969737128518661e+22
ATTRIBUTE: 11969737128518660155555
http://jsfiddle.net/nanoquantumtech/usydd/#base
// ============================================= =========== //
<ul>
<li class="current" title="some title" data-atype="some type" data-test1="119697371285186601555" data-test2="11969737128518660155555">Some text
</li>
</ul>
<span></span>
$(document).ready(function() {
$('span').html('DATA ATTRIBUTE: <br />' + $('li.current:first').data('test1')+ ' , <br /> '+$('li.current:first').data('test2') + '<br /><br /> ATTRIBUTE: <br />' + $('li.current:first').attr('data-test1')+' , <br />'+$('li.current:first').attr('data-test2'));
});
Out Put For jquery version < 1.7.2
Some text
DATA ATTRIBUTE:
119697371285186610000 ,
1.1969737128518661e+22
ATTRIBUTE:
119697371285186601555 ,
11969737128518660155555
Out Put For jquery version 1.8.2
Some text
DATA ATTRIBUTE:
119697371285186601555 ,
11969737128518660155555
ATTRIBUTE:
119697371285186601555 ,
11969737128518660155555