5

以下引发了一个警告框读数: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);
});

小提琴:http: //jsfiddle.net/zUbym/1/

​</p>

4

1 回答 1

8

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

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

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

于 2012-06-09T15:53:15.273 回答