首頁 web前端 js教程 H5的data-*自訂屬性使用詳解

H5的data-*自訂屬性使用詳解

May 12, 2018 pm 02:17 PM
html5 自訂

這次帶給大家H5的data-*自訂屬性使用詳解,H5的data-*自訂屬性所使用的注意事項有哪些,以下就是實戰案例,一起來看一下。

一、關於html元素的特性

1.html元素都存在一些標準的特性:

    id 元素在文件中的唯一識別碼;

    title 有關元素的附加說明訊息,一般透過工具提示條顯示出來;

    lang 元素內容的語言程式碼,很少使用;

    dir 語言的方向,很少使用;

    className,與元素的class特性對應,考慮到與ECMAScript的保留字class的衝突,因此命名為className;

2.操作特性的方法:

    getAttribute() 取得相關特性,也可以取得自訂的特性,區別於使用DOM元素的屬性取得;   

    setAttribute() 設置相關特性; 

    removeAttribute() 刪除相關特性;

3.關於獲取html元素特性中使用getAttribute()與直接使用DOM元素的屬性取得的差異:

例如:

var header=document.getElementById('header');
console.log(header.id);//header
console.log(header.getAttribute('id'));//header
console.log(header.title);//test
console.log(header.getAttribute('title'));//test
console.log(header.myTitle);//undefined
console.log(header.getAttribute('myTitle'));//monster1935
登入後複製

在本文範例中示範了透過兩種方法取得html元素的標準特性以及自訂特性。可以發現:

getAttribute()既可以存取標準特性也可以存取自訂特性,而是用DOM元素本身屬性存取html元素特性的時候只能存取標準特性。

原因:

html元素中只有標準特性才會以屬性的形式加入DOM物件。

特殊情況:

有兩類特性,雖有在DOM物件中有對應的屬性名,但是屬性的值與透過getAttribute()傳回的值並不相同。

1.style特性:

使用DOM物件屬性存取style的時候,返回的是一個對象,而使用getAttribute()方法取得的時候返回的是css文字。

2.事件處理程式(例如:onclick):

使用DOM物件的屬性存取的時候,傳回的是一個JavaScript函數,而透過getAttribute()方法取得時回傳的是javas程式碼。

使用方法:

只有在取得自訂特性的時候使用getAttribute()方法,操作DOM的時候,使用物件的屬性來取得。

二、Html5中的自訂屬性

1.Html5規格中規定自訂屬性需要加入前綴data-,目的是提供與渲染無關的資訊。

2.使用getAttribute()方法以及setAttribute()方法來操作自訂屬性。

例如:

var user=document.getElementById('user');
//使用attributes方法操作属性
//获取相关属性值
var name=user.getAttribute('data-name');
console.log(name)//monster1935
var age = user.getAttribute('data-age');
console.log(age);//123
//设置相关属性值
user.setAttribute('data-sex','male');
console.log(user.getAttribute('data-sex'));//male
登入後複製

上述範例中展示了使用getAttribute()以及setAttribute()方法操作html元素的自訂屬性。

3.使用dataset操作自訂屬性

例如:

var el=document.querySelector('#user');
console.log(el.id);
console.log(el.dataset); //返回的是一个DomStringMap对象
console.log(el.dataset.name);
console.log(el.dataset.age);
// 设置相关属性
el.dataset.home="shandong";
console.log(el.dataset);
// 删除相关属性
// delete el.dataset.home;
el.dataset.home = null;
console.log(el.dataset);
登入後複製

以上範例展示了使用dataset屬性來操作自訂屬性。 dataset屬性的值是一個DOMStringMap的一個範例,是一個名值對的對應。在這個映射中,每個data-name的形式的屬性都有一個對應的屬性,不同的是屬性名稱中沒有data-前綴。 (例如,自訂屬性是data-name,映射中對應的屬性就是name).還有一點要注意的是如果data-屬性名稱中包含了連字符(例如:data-date-of-birth ),則映射中對應的屬性為dateOfBirth,即轉換為對應的駝峰格式來顯示。

4.dataset屬性的相容性問題

#Chrome 8 Firefox(Gecko) 6.0 Internet Explorer 11 Opera 11.10 Safari 6

5.使用data-屬性選擇器

1.获取相关DOM元素

var elem=document.querySelectorAll("[data-name='monster1935']");

2.设置相关css样式

<style>
  p{
    width:100px;
    height:200px;
    margin:20px;
  }
  p[data-name="monster"]{
    background-color: green;
  }
  p[data-name="monster1935"]{
    background-color: red
  }
</style>
登入後複製

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

HTML文档中嵌入JS方法总结

React Form组件封装步骤详解

以上是H5的data-*自訂屬性使用詳解的詳細內容。更多資訊請關注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.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前 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:54 PM

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

HTML 有序列表 HTML 有序列表 Sep 04, 2024 pm 04:43 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