jQuery data() treating string as number

自從 HTML5 開始推廣將自定義參數以 data- 型式標記後,自然也習慣地用 jQuery 的 data() function 來取值。

直到今天碰到一個很奇妙的狀況才注意到 jQuery 會將 data() 取回的資料做轉型。

HTML 長這樣…

<div data-mobile-phone="0919123456"></div>

JS 長這樣…

alert($('div').data('mobile-phone'));

每次跳出來的視窗內容都是 919123456,顯然被當成 int 處理了。

Google 了一會才發現 jQuery 文件寫了一行….

To retrieve the value’s attribute as a string without any attempt to convert it, use the attr() method.

這沒熟讀文件還真的不知道,所以 JS 部份應改寫為…

alert($('div').attr('data-mobile-phone'));

才會得到正確的 0919123456。


Posted

in

by

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *