国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

關于HTML5的data-*自定義屬性的總結

2019-11-19 13:54:43
字體:
來源:轉載
供稿:網友

本文講述了關于HTML5的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);//headerconsole.log(header.getAttribute('id'));//headerconsole.log(header.title);//testconsole.log(header.getAttribute('title'));//testconsole.log(header.myTitle);//undefinedconsole.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)//monster1935var 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>  div{    width:100px;    height:200px;    margin:20px;  }  div[data-name="monster"]{    background-color: green;  }  div[data-name="monster1935"]{    background-color: red  }</style>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 怀来县| 井研县| 边坝县| 涪陵区| 缙云县| 修文县| 开平市| 吉安县| 多伦县| 边坝县| 广安市| 新闻| 绵竹市| 扬中市| 高陵县| 鸡东县| 六枝特区| 中宁县| 龙南县| 当涂县| 平邑县| 山阳县| 阿坝县| 苏尼特右旗| 万盛区| 株洲市| 青冈县| 乡城县| 昆明市| 宜城市| 达尔| 普宁市| 纳雍县| 夏津县| 平谷区| 中阳县| 吐鲁番市| 泸水县| 巫溪县| 湛江市| 呈贡县|