javascript - 阻止 Javascript 舍入大数字 ID

标签 javascript

下面会弹出一个警告框: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/

最佳答案

发生这种情况有两个原因:

  1. jQuery 是否支持将“data-”属性值转换为“适当的”类型
  2. 这么大的数字无法在 JavaScript 中准确表示,因为所有数字都是 64 位 IEEE 794 浮点值。

如果直接用“.attr()”获取属性值,可以避免数字转换,但必须保持为字符串。或者,您可以在数据值前加上一些非数字字符(“_”或其他字符),以防止 jQuery 试图帮您一个忙。

关于javascript - 阻止 Javascript 舍入大数字 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10962390/

相关文章:

javascript - 更改 jQuery 中 if else 语句的图标

javascript - 通过数据属性数组过滤jquery对象

javascript - Catch 无法读取 null 的属性

javascript - 如何将用户从没有 html/view 的页面重定向回来?

javascript - 具有响应高度的全宽背景

javascript - 如何从 Electron 中的main.js调用另一个脚本中的函数

php - 我可以知道我的页面在渲染之前是否会有滚动条吗? PHP JavaScript

javascript - 在 play 框架中将 javascript 变量转换为 scala

javascript - Javascript 字段验证循环

javascript - 获取数组中第二个索引之后的所有索引