使用 data-* 屬性來嵌入自定義數據

1. HTML 實例jquery

<ul>
<li data-animal-type="bird">Owl</li>
<li data-animal-type="fish">Salmon</li>
<li data-animal-type="spider">Tarantula</li>
</ul>

2.瀏覽器支持
    IE    Firefox   Chrome     Safari          Opera
  支持   支持        支持           支持             支持數據庫

3.定義和用法json

   data-* 屬性用於存儲頁面或應用程序的私有自定義數據。瀏覽器

   data-* 屬性賦予咱們在全部 HTML 元素上嵌入自定義 data 屬性的能力。服務器

   存儲的(自定義)數據可以被頁面的 JavaScript 中利用,以建立更好的用戶體驗(不進行 Ajax 調用或服務器端數據庫查詢)。ide

   data-* 屬性包括兩部分:工具

   屬性名不該該包含任何大寫字母,而且在前綴 "data-" 以後必須有至少一個字符佈局

   屬性值能夠是任意字符串spa

   註釋:用戶代理會徹底忽略前綴爲 "data-" 的自定義屬性。代理

   語法
     <element data-*="somevalue">
   值描述
    somevalue 規定屬性的值(以字符串)。

4.外加信息

   HTML 標籤能夠添加自定義屬性來存儲和操做數據。但這樣作會致使 HTML 語法上不符合 HTML 規範。

   HTML5 規範裏增長了一個自定義 data 屬性,自定義data屬性的用法很是的簡單,就能夠往 HTML 標籤上添加任意以 "data-"開頭的屬性。

   這些屬性頁面上是不顯示的,它不會影響到你的頁面佈局和風格,但它倒是可讀可寫的。

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

<div id="item" data-id='123'>11111</div>

   但是,怎麼來讀取這些數據呢?你固然能夠遍歷頁面元素來讀取你想要的屬性,但 jquery 已經內置了方法來操做這些屬性。

   使用 jQuery 的 .data() 方法來訪問這些"data-*" 屬性。其中一個方法就是 .data(obj),這個方法是在 jQuery1.4.3版本後出現的,它能返回相應的 data 屬性。

   舉個例子,你能夠用下面的寫法讀取 data-id 屬性值--123:

var myid= jQuery("#item").data('id');

   你還能夠在"data-*" 屬性裏使用 json 語法,

<div id="item" data-id='{"game":"on"}'></div>

   你能夠經過 js 直接訪問這個數據,經過 json 的 key 值,你能獲得相應的 value:

var gameStatus= jQuery("#item").data('id').game;

   你也能夠經過 .data(key,value) 方法直接給"data-*" 屬性賦值。

   一個重要的你要注意的事情是,這些"data-*" 屬性應該和它所在的元素有必定的關聯,不要把它當成存聽任意東西的存儲工具。

   儘管"data-*" 是 HTML5 纔出現的屬性,但 jquery 是通用的,因此,在非 HTML5 的頁面或瀏覽器裏,你仍然可使用 .data(obj ) 方法來操做"data-*" 數據。

相關文章
相關標籤/搜索