2011-09-26 38 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