自定義屬性 - 2018-05-15

  • 2018-05-15 創(chuàng)建

HTML5 data-* 自定義屬性

HTML5中添加了data-的方式來自定義屬性,所謂data-實際上上就是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中元素都會有一個dataset的屬性,這是一個DOMStringMap類型的鍵值對集合

var test = document.getElementById('test');
test.dataset.my = 'Byron';

這樣就為div添加了一個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樣式表為div添加了一些樣式筑悴,看看效果


image.png

image.png

讀取的時候也是通過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
image.png

image.png

這樣我們可以看出械拍,兩者都把屬性設(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+簡直就是亮瞎小伙伴的眼,看來要想全面使用此屬性路漫漫其修遠(yuǎn)矣

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末拗引,一起剝皮案震驚了整個濱河市借宵,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌矾削,老刑警劉巖壤玫,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異哼凯,居然都是意外死亡欲间,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進(jìn)店門断部,熙熙樓的掌柜王于貴愁眉苦臉地迎上來猎贴,“玉大人,你說我怎么就攤上這事蝴光∷剩” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵蔑祟,是天一觀的道長趁耗。 經(jīng)常有香客問我,道長疆虚,這世上最難降的妖魔是什么苛败? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮径簿,結(jié)果婚禮上著拭,老公的妹妹穿的比我還像新娘。我一直安慰自己牍帚,他們只是感情好儡遮,可當(dāng)我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著暗赶,像睡著了一般鄙币。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蹂随,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天十嘿,我揣著相機(jī)與錄音,去河邊找鬼岳锁。 笑死绩衷,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播咳燕,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼勿决,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了招盲?” 一聲冷哼從身側(cè)響起低缩,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎曹货,沒想到半個月后咆繁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡顶籽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年玩般,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片礼饱。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡坏为,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出慨仿,到底是詐尸還是另有隱情久脯,我是刑警寧澤纳胧,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布镰吆,位于F島的核電站,受9級特大地震影響跑慕,放射性物質(zhì)發(fā)生泄漏万皿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一核行、第九天 我趴在偏房一處隱蔽的房頂上張望牢硅。 院中可真熱鬧,春花似錦芝雪、人聲如沸减余。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽位岔。三九已至,卻和暖如春堡牡,著一層夾襖步出監(jiān)牢的瞬間抒抬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工晤柄, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留擦剑,地道東北人。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像惠勒,于是被迫代替她去往敵國和親赚抡。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 在本文中捉撮,我將向你介紹如何使用HTML5自定義數(shù)據(jù)屬性怕品。我還將向你介紹一些開發(fā)人員在工作中經(jīng)常使用的優(yōu)秀實例。 為...
    間陽幕賓閱讀 875評論 2 10
  • HTML5增加了一項新功能是自定義數(shù)據(jù)屬性巾遭,也就是data-*自定義屬性肉康。在HTML5中我們可以使用以data-為...
    夢夜空中最亮的星閱讀 921評論 0 0
  • 轉(zhuǎn)載自:https://www.cnblogs.com/tween/p/4832797.html轉(zhuǎn)載自:http:...
    天字一等閱讀 8,228評論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)灼舍,斷路器吼和,智...
    卡卡羅2017閱讀 134,633評論 18 139
  • 一場秋雨一場寒,昨夜雨淅淅骑素,風(fēng)瀟雨寒炫乓。遙思遠(yuǎn)方。 【寄詩誠愫穆】 又聞空庭雨献丑,依舊倚窗欄末捣。 思眷何需掩,夜更秋晚寒...
    06e9fe388a97閱讀 289評論 0 6