给定像这样的元素<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
有没有人有更好的计划?
答案 0 :(得分:3)
根据.data()
本身的文档,jQuery开发人员告诉您使用.attr()
来检索值而不强制它。我想像重写jQuery正在使用的内部会比仅仅切换到适当的方法更有害。