jQuery Data Attribute
最近開始用 data-*
的 attribute,後來看到 jQuery 也有 .data()
的 method 可以用,data()
可以存不只 String
type 的資料,也可以存 Number
or Boolean
之類的,不過用了之後才發現不是那麼好用,因為假如我把 data attribute 寫在 html 裡的話,ex:
<div data-value="123"></div>
我用 data('value')
取出來的值會是 Number
type,也就是說,如果能轉的話,它就會自動幫你轉,在很多情況下,這不會是想要的行為,而且一旦不小心,就會造成不同型態比較的錯誤,所以就我自己來說,還是使用 attr('data-value')
的方式,可以保證一定是拿到字串,但是 data()
還是有它的好處,就是它的內部實作有做 cache,所以讀取上會快些,因為不用 access 到 DOM。
2015/10/18 補充:
根據這篇 jsperf 的測試,看來連 get 也不會比較快,那 data()
還真的是沒啥優點...。
Ref:
comments powered by Disqus