自從 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。
Leave a Reply