HTML5的自定義data屬性及jQuery.data()方法的使用打賞

做前端的人有的喜歡在HTML標簽上添加自定義屬性來存儲和操作數據。但這樣做的問題是,你不知道將來會不會有其它腳本把你的自定義屬性給重置掉,此外,你這樣做也會導致html語法上不符合Html規范,以及一些其它副作用。這就是為什么在HTML5規范里增加了一個自定義data屬性,你可以拿它做很多有用的事情。

你可以去讀一下HTML5的詳細規范,但這個自定義data屬性的用法非常的簡單,就是你可以往HTML標簽上添加任意以 "data-"開頭的屬性,這些屬性頁面上是不顯示的,它不會影響到你的頁面布局和風格,但它卻是可讀可寫的。

下面的一個代碼片段是一個有效的HTML5標記:

<div id="id" data-key="1">TO DO</div>

可是,怎么來讀取這些數據呢?你當然可以遍歷頁面元素來讀取你想要的屬性,但jQuery已經內置了方法來操作這些屬性。使用jQuery的.data()方法來訪問這些"data-*" 屬性。其中一個方法就是 .data(obj),這個方法是在 jQuery1.4.3版本后出現的,它能返回相應的data屬性。這個也是我今天查了資料才知道的,今天做事的時候有同事提出存數據到jQuery的data,我沒用過,問了發現他也不清楚是存在哪,回來就查資料了,發現原來是結合HTML5的元素使用的。之前還一度認為是存在jQuery的cache里,因為沒仔細看過jQuery源碼,對于這個方法又是第一次接觸,回來就抽空看了下,想想我白天寫的程序還是停留在$('selector').attr('data-key')形式,真是受益頗深。

舉個例子,你可以用下面的寫法讀取 data-key屬性值:

var id= jQuery("#id").data('key');
console.log(id);

你還可以在"data-*" 屬性里使用json語法,例如,如果你寫出下面的html:

<div id="id-json" data-key='{"key":"1"}'></div>

你可以通過js直接訪問這個數據,通過json的key值,你能得到相應的value:

var key= jQuery("#id-json").data('obj').key;
console.log(key);

你也可以通過.data(key,value)方法直接給"data-*" 屬性賦值。一個重要的你要注意的事情是,這些"data-*" 屬性應該和它所在的元素有一定的關聯,不要把它當成存放任意東西的存儲工具。

譯者補充:盡管"data-*" 是HTML5才出現的屬性,但jquery是通用的,所以,在非HTML5的頁面或瀏覽器里,你仍然可以使用.data(obj)方法來操作"data-*" 數據。
PS:小嘮叨一句,升級wp3.8后第一次發文章,體驗還行!
轉自網絡

HTML5的自定義data屬性及jQuery.data()方法的使用
文章《HTML5的自定義data屬性及jQuery.data()方法的使用》二維碼
  • 微信打賞
  • 支付寶打賞

已有2條評論

  1. 娛樂城訊特

    多支持一下吧

    2014-03-26 11:27 回復
  2. 訊特百家樂www.xunte888.com

    學習了··謝謝!!

    2014-03-03 16:29 回復

(必填)

(必填)

(可選)

黑龙江22选5开奖