五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

HTML5中的自定義屬性總結(jié)

2021-12-26 16:51 作者:jeecg  | 我要投稿

在HTML5中添加了data-*的方式來自定義屬性,所謂data-*實(shí)際上上就是data-前綴加上自定義的屬性名,使用這樣的結(jié)構(gòu)可以進(jìn)行數(shù)據(jù)存放。使用data-*可以解決自定義屬性混亂無管理的現(xiàn)狀。


讀寫方式

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


<div id="test" data-age="24">

? Click Here

</div>


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


var test = document.getElementById('test');

test.dataset.my = 'Byron';


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

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

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

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

<style type="text/css">

? ? [data-birth-date]

? ? {

? ? ? ? ?background-color: #0f0;

? ? ? ? ?width:100px;

? ? ? ? ?margin:20px;

? ? ?}

</style>


<style type="text/css">

? ? test.dataset.birthDate = '19890615';

</style>


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

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


<style type="text/css">

? ?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);

? ?}

</style>


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的一個(gè)子集,特殊就特殊在命名上了,但是dataset內(nèi)只有帶有data-前綴的屬性(沒有age=25那個(gè))。


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

本文轉(zhuǎn)載自:https://blog.csdn.net/qq_27674439/article/details/90696837

HTML5中的自定義屬性總結(jié)的評論 (共 條)

分享到微博請遵守國家法律
潞西市| 额尔古纳市| 剑川县| 颍上县| 平度市| 化隆| 东光县| 龙胜| 涡阳县| 彭山县| 磴口县| 赤峰市| 清苑县| 临汾市| 衢州市| 夏邑县| 绥宁县| 江陵县| 娄底市| 永平县| 陆川县| 嘉义县| 韩城市| 明星| 滨州市| 河北区| 延寿县| 黎川县| 海伦市| 吐鲁番市| 民乐县| 彝良县| 禹州市| 巨鹿县| 岳池县| 广安市| 海丰县| 都江堰市| 临猗县| 嘉鱼县| 安吉县|