首頁  >  文章  >  web前端  >  html5儲存頁面或應用程式的私有自訂資料的data-* 屬性

html5儲存頁面或應用程式的私有自訂資料的data-* 屬性

黄舟
黄舟原創
2017-11-03 10:14:501779瀏覽

實例

使用data-* 屬性來嵌入自訂資料:

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

瀏覽器支援

IE、Firefox、Chrome、Safari、Opera

所有主流瀏覽器都支援data-* 屬性。

定義和用法

data-* 屬性用於儲存頁面或應用程式的私人自訂資料。

data-* 屬性賦予我們在所有 HTML 元素上嵌入自訂 data 屬性的能力。

儲存的(自訂)資料能夠被頁面的 JavaScript 中利用,以創建更好的使用者體驗(不進行 Ajax 呼叫或伺服器端資料庫查詢)。

data-* 屬性包括兩個部分:

  • 屬性名稱不應該包含任何大寫字母,且在前綴"data-" 之後必須有至少一個字元

  • 屬性值可以是任意字串

#註解:使用者代理程式會完全忽略前綴為"data-" 的自定義屬性。

HTML 4.01 與 HTML5 之間的差異

data-* 屬性是 HTML5 中的新屬性。

語法

<element data-*="somevalue">

屬性值

#值 描述
somevalue 規定屬性的值(以字串)。

jQuery的attr與prop提到在IE9之前版本中如果使用property不當會造成記憶體洩漏問題,而且關於Attribute和Property的差異也讓人十分頭痛,在HTML5中加入了data-*的方式來自訂屬性,所謂data-*其實上就是data-前綴加上自訂的屬性名,使用這樣的結構可以進行資料存放。使用data-*可以解決自訂屬性混亂無管理的現狀。

讀寫方式

data-*有兩種設定方式,可以直接在HTML元素標籤上書寫

<div id="test" data-age="24">
        Click Here
    </div>

其中的data-age就是一種自訂屬性,當然我們也可以透過JavaScript來對其進行操作,HTML5中元素都會有一個dataset的屬性,這是一個DOMStringMap類型的鍵值對集合

var test = document.getElementById(&#39;test&#39;);
        test.dataset.my = &#39;Byron&#39;;

這樣就為div新增了一個data-my的自訂屬性,使用JavaScript操作dataset有兩個需要注意的地方

1. 我們在新增或讀取屬性的時候需要去掉前綴data- *,像上面的範例我們沒有使用test.dataset.data-my = 'Byron';的形式。

2. 如果屬性名稱中也包含連字號(-),需要轉成駝峰命名方式,但如果在CSS中使用選擇器,我們需要使用連字格式


以上是html5儲存頁面或應用程式的私有自訂資料的data-* 屬性的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn