下面会弹出一个警告框:211466719468855300
。为什么会发生这种情况,即使我尝试将其转换为字符串?如何准确阅读?
HTML:
<a class="delete-link" data-id="211466719468855298">Delete</a>
JS:
$('.delete-link').click(function(e) {
var $item =$(this);
var itemID = String($item.data('id'));
alert(itemID);
});
fiddle : http://jsfiddle.net/zUbym/1/
最佳答案
发生这种情况有两个原因:
- jQuery 是否支持将“data-”属性值转换为“适当的”类型
- 这么大的数字无法在 JavaScript 中准确表示,因为所有数字都是 64 位 IEEE 794 浮点值。
如果直接用“.attr()”获取属性值,可以避免数字转换,但必须保持为字符串。或者,您可以在数据值前加上一些非数字字符(“_”或其他字符),以防止 jQuery 试图帮您一个忙。
关于javascript - 阻止 Javascript 舍入大数字 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10962390/