2011-09-26 17 views
0

鉴于这样<a data-test="10E6"> jQuery的一个元件解释的值作为科学notaion的整数,而不是如预期,当我做elem.data('test')jQuery.data解析像10E6字符串作为INT(10000000)

鉴于这是发生的字符串在一个相当大的应用程序中,我正在探索改变这种行为的选项,而无需在任何可能发生的地方切换到使用elem.attr('data-test')

因为jQuery使用$ .isNaN内部试图解析值作为浮动我可以覆盖isNaN加入正则表达式^[E\d]+$像这样前:

$.isNaN = function(obj) { 
    return obj == null || !$.rdigit.test(obj) || /E/.test(obj) || isNaN(obj); 
} 

或重写要复杂得多$.data

不任何人有更好的计划?

回答

3

根据.data()本身的文档,jQuery开发人员告诉您使用.attr()来检索该值而不强制该值。我想可能会重写jQuery使用的内部部件,而不是简单地切换到适当的方法,这会是一个更有害的问题。

+0

谢谢。只需要咬紧牙关,梳理整个代码即可完成所有更改。 – Jake

+0

我找不到任何官方的开发人员,但我一直在使用'.attr()'(我有客户命名部件“01”,他们期望前导零,数量(!)不同保存下来),它一直在按预期工作。这似乎是一件安全的事情,因为数据属性只是属性,attr不应该在乎。 – Chris