首頁 web前端 前端問答 html5自訂屬性什麼用

html5自訂屬性什麼用

Jul 29, 2022 pm 04:35 PM
html5 自訂屬性 data-*

html5自訂屬性「data-*」用於儲存私有頁面後應用的自訂數據,而自訂的數據可以讓頁面擁有更好的互動體驗(不需要使用Ajax或去服務端查詢資料),語法「」;「data-*」屬性由兩部分組成:1、屬性名不要包含大寫字母,在「data -」後必須至少有一個字元;2、屬性值,該值可以是任何字串。

html5自訂屬性什麼用

本教學操作環境:windows7系統、HTML5版、Dell G3電腦。

html5自訂屬性<span style="font-size: 18px;">data-*</span>

data-* 屬性用於儲存私有頁面後應用的自訂數據,是HTML5 新增的屬性。

<element data-*="somevalue">
登入後複製
  • somevalue:指定屬性值(一個字串)    

data-* 屬性可以在所有的HTML元素中嵌入資料。

自訂的資料可以讓頁面有更好的互動體驗(不需要使用 Ajax 或去服務端查詢資料)。

data-* 屬性由以下兩部分組成:

  • 屬性名稱不要包含大寫字母,在data- 後必須至少有一個字符。

  • 屬性值,該屬性值可以是任何字串

#注意: 自訂屬性前綴"data-" 會被客戶端忽略。

利用dataset可以取得data-屬性建構的對象,該方法目前只能在Chrome 、Opera等部分瀏覽器中實現,其他瀏覽器如需取得其屬性值需要使用getAttribute和setAttribute來操作。

只要在標籤裡面以”data-”為前綴定義我們的自訂屬性就可以用來進行一些資料的存放。

<div id="myDiv" data-attribute="value">在标签里设置H5新增的自定义属性</div>
登入後複製
登入後複製

這個data屬性還可以應用在CSS中,前提是你的瀏覽器支援after偽類,以及content的attr屬性(低版本的IE不支援): 

<div id="myDiv" data-attribute="属性值">data属性应用于CSS中</div>
登入後複製
#myDiv{
  position: ralative;
}
 
#myDiv:hover:after{
  position: absolute;
  top: 0px;
  left: 0px;
  content: attr(data-attribute);
  color: red;
}
登入後複製

如何取得data屬性的值?

<div id="myDiv" data-attribute="value">在标签里设置H5新增的自定义属性</div>
登入後複製
登入後複製

1、使用getAttribute來取得

var myDiv = document.getElementById("myDiv");
var theValue = myDiv.getAttribute("user-defined-attribute");
登入後複製

2、使用Html5自訂屬性物件Dataset來取得

var myDiv = document.getElementById("myDiv");
 
var theValue = myDiv.dataset.attribute;
登入後複製

注意:帶連字元連接的名稱在使用的時候需要命名駝峰化,即大小寫組合書寫,這與應用元素的style物件類似,dom.style.borderColor。例如data屬性為data-other-attribute,則我們要取得對應的值可以使用:myp.dataset.otherAttribute

如果Html元素定義了多個自訂屬性,如何獲取?

<div id="myDiv" data-attribute1="value" data-attribute2="value2" data-attribute3="value3">在标签里设置多个自定义属性</div>
登入後複製

1、使用循環遍歷

 var myDiv = document.getElementById("myDiv");
var attrs = myDiv.attributes,
var expense = {}, i, j;  
for (i = 0, j = attrs.length; i < j; i++) {
  if(attrs[i].name.substring(0, 5) == &#39;data-&#39;) {
    expense[attrs[i].name.substring(5)] = attrs[i].value;
  }
}
登入後複製

2、使用dataset屬性

var expense = document.getElementById(&#39;myDiv&#39;).dataset;
登入後複製

附註:dataset並不是典型意義上的JavaScript對象,而是個DOMStringMap物件DOMStringMap#是HTML5一種新的含有多個名-值對的交互變數

1) 、讓所有的自訂的屬性值塞到一個陣列中

var chartInput = [];
 
for (var item in expense) {
  chartInput.push(expense[item]);
}
登入後複製

2)、刪除一個data屬性

delete myDiv.dataset.attribute;
登入後複製

3、增加一個data屬性

myDiv.dataset.attribute4 = &#39;value4&#39;;
登入後複製

dataset的相容性處理

如果瀏覽器不支援dataset,有必要做一下相容處理:

if(myDiv.dataset) {
  myDiv.dataset.attribute = "valueXX"; // 设置自定义属性
  var theValue = myDiv.dataset.attribute; // 获取自定义属性
} else {
  myDiv.setAttribute("data-attribute", "valueXX"); // 设置自定义属性
  var theValue = myDiv.getAttribute("data-attribute"); // 获取自定义属性
}
登入後複製

結語:

使用dataset操作data 要比使用getAttribute速度稍微慢些,雖然使用dataset不能提高程式碼的效能,但是對於簡潔程式碼,提高程式碼的可讀性和可維護性是很有幫助的。

【推薦課程:HTML5影片教學web前端

以上是html5自訂屬性什麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

HTML 中的表格邊框 HTML 中的表格邊框 Sep 04, 2024 pm 04:49 PM

HTML 表格邊框指南。在這裡,我們以 HTML 中的表格邊框為例,討論定義表格邊框的多種方法。

HTML 左邊距 HTML 左邊距 Sep 04, 2024 pm 04:48 PM

HTML 左邊距指南。在這裡,我們討論 HTML margin-left 的簡要概述及其範例及其程式碼實作。

HTML 中的巢狀表 HTML 中的巢狀表 Sep 04, 2024 pm 04:49 PM

這是 HTML 中巢狀表的指南。這裡我們討論如何在表中建立表格以及對應的範例。

HTML 表格佈局 HTML 表格佈局 Sep 04, 2024 pm 04:54 PM

HTML 表格佈局指南。在這裡,我們詳細討論 HTML 表格佈局的值以及範例和輸出。

HTML 有序列表 HTML 有序列表 Sep 04, 2024 pm 04:43 PM

HTML 有序列表指南。在這裡我們也分別討論了 HTML 有序列表和類型的介紹以及它們的範例

HTML 輸入佔位符 HTML 輸入佔位符 Sep 04, 2024 pm 04:54 PM

HTML 輸入佔位符指南。在這裡,我們討論 HTML 輸入佔位符的範例以及程式碼和輸出。

在 HTML 中移動文字 在 HTML 中移動文字 Sep 04, 2024 pm 04:45 PM

HTML 中的文字移動指南。在這裡我們討論一下marquee標籤如何使用語法和實作範例。

HTML onclick 按鈕 HTML onclick 按鈕 Sep 04, 2024 pm 04:49 PM

HTML onclick 按鈕指南。這裡我們分別討論它們的介紹、工作原理、範例以及各個事件中的onclick事件。

See all articles