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

首頁 > 編程 > HTML > 正文

HTML5 data-- 自定義屬性實例分享

2020-03-24 15:58:22
字體:
供稿:網(wǎng)友
本文主要介紹了詳解HTML5 data-* 自定義屬性的相關(guān)資料,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望能幫助到大家。

在jQuery的attr與prop提到過在IE9之前版本中如果使用property不當(dāng)會造成內(nèi)存泄露問題,而且關(guān)于Attribute和Property的區(qū)別也讓人十分頭痛,在HTML5中添加了data-*的方式來自定義屬性,所謂data-*實際上上就是data-前綴加上自定義的屬性名,使用這樣的結(jié)構(gòu)可以進行數(shù)據(jù)存放。使用data-*可以解決自定義屬性混亂無管理的現(xiàn)狀。

讀寫方式

data-*有兩種設(shè)置方式,可以直接在html' target='_blank'>HTML元素標(biāo)簽上書寫


 p id= test data-age= 24  Click Here /p 

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


var test = document.getElementById( test  test.dataset.my = Byron 

這樣就為p添加了一個data-my的自定義屬性,使用JavaScript操作dataset有兩個需要注意的地方

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

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

為剛才代碼追加寫內(nèi)容


 style type= text/css  [data-birth-date] background-color: #0f0; width:100px; margin:20px; /style 


test.dataset.birthDate = 19890615 

這樣我們通過JavaScript設(shè)置了data-birth-date自定義屬性,在CSS樣式表為p添加了一些樣式,看看效果

讀取的時候也是通過dataset對象,使用”.”來獲取屬性,同樣需要去掉data-前綴,連字符需要轉(zhuǎn)化為駝峰命名


var test = document.getElementById( test  test.dataset.my = Byron  test.dataset.birthDate = 19890615  test.onclick = function () { alert(this.dataset.my + + this.dataset.age+ +this.dataset.birthDate); }

getAttribute/setAttribute

有些同學(xué)可能會問這和getAttribute/setAttribute除了命名有什么區(qū)別嗎,我們來看一下


var test = document.getElementById( test  test.dataset.birthDate = 19890615  test.setAttribute( age , 25); test.setAttribute( data-sex , male  console.log(test.getAttribute( data-age //24 console.log(test.getAttribute( data-birth-date //19890516 console.log(test.dataset.age); //24 console.log(test.dataset.sex); //male

這樣我們可以看出,兩者都把屬性設(shè)置到了attribute上(廢話,要不人家能叫自定義屬性),也就是說getAttribute/setAttribute可以操作所有的dataset內(nèi)容,dataset內(nèi)容只是attribute的一個子集,特殊就特殊在命名上了,但是dataset內(nèi)只有帶有data-前綴的屬性(沒有age=25那個)。

那么為什么我們還要用data-*呢,一個最大的好處是我們可以把所有自定義屬性在dataset對象中統(tǒng)一管理,遍歷啊神馬的都哦很方便,而不至于零零散散了,所以用用還是不錯的。

瀏覽器兼容

比較不好的消息就是data-*的瀏覽器兼容性情況十分不樂觀

Internet Explorer 11+

Chrome 8+

Firefox 6.0+

Opera 11.10+

Safari 6+

其中IE11+簡直就是亮瞎小伙伴的眼,看來要想全面使用此屬性路漫漫其修遠矣

相關(guān)推薦:

HTML5的data-*自定義屬性是什么

H5中如何獲取和設(shè)置自定義屬性

JavaScript自定義屬性和方法的對象模型代碼詳解

以上就是HTML5 data-* 自定義屬性實例分享的詳細內(nèi)容,其它編程語言

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 荥阳市| 仁怀市| 沁源县| 天长市| 西贡区| 攀枝花市| 湘潭县| 兴隆县| 称多县| 麻江县| 巴彦县| 昌黎县| 年辖:市辖区| 靖江市| 潜江市| 顺昌县| 习水县| 千阳县| 木兰县| 娄烦县| 湘阴县| 杨浦区| 报价| 澄迈县| 巍山| 吉安县| 巫山县| 红河县| 桂阳县| 聊城市| 江油市| 郁南县| 油尖旺区| 萍乡市| 宜城市| 同德县| 元阳县| 保德县| 武冈市| 潮安县| 平塘县|