jQuery.data解析字符串,如10E6为int(10000000)

时间:2011-09-26 21:59:31

标签: jquery

给定像这样的元素<a data-test="10E6"> jQuery将值解释为科学名词中的整数,而不是在我elem.data('test')

时将字符串解释为字符串

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

由于jQuery在尝试将值解析为float之前在内部使用$ .isNaN,我可以覆盖isNaN添加正则表达式^[E\d]+$,如下所示:

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

或覆盖更复杂的$.data

有没有人有更好的计划?

1 个答案:

答案 0 :(得分:3)

根据.data()本身的文档,jQuery开发人员告诉您使用.attr()来检索值而不强制它。我想像重写jQuery正在使用的内部会比仅仅切换到适当的方法更有害。