好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 詳解HTML5 data-* 自定義屬性

詳解HTML5 data-* 自定義屬性

熱門標簽:鎮江智能外呼系統有效果嗎 云南大理400電話申請官方 電銷機器人電話用什么卡 江蘇智能電銷機器人哪家好 當涂高德地圖標注 成都智能外呼系統平臺 四川點撥外呼系統 黃島區地圖標注 南寧點撥外呼系統哪家公司做的好

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

讀寫方式

data-*有兩種設置方式,可以直接在HTML元素標簽上書寫

<div id="test" data-age="24">
        Click Here
    </div>

其中的data-age就是一種自定義屬性,當然我們也可以通過JavaScript來對其進行操作,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. 如果屬性名稱中還包含連字符(-),需要轉成駝峰命名方式,但如果在CSS中使用選擇器,我們需要使用連字符格式

為剛才代碼追加寫內容

<style type="text/css">
        [data-birth-date]
        {
            background-color: #0f0;
            width:100px;
            margin:20px;
        }
    </style>
test.dataset.birthDate = '19890615';

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

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

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

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

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

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

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

瀏覽器兼容性

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

  1. Internet Explorer 11+
  2. Chrome 8+
  3. Firefox 6.0+
  4. Opera 11.10+
  5. Safari 6+

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

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

標簽:西寧 南京 咸寧 佳木斯 酒泉 十堰 廣西 淮安

巨人網絡通訊聲明:本文標題《詳解HTML5 data-* 自定義屬性》,本文關鍵詞  詳解,HTML5,data-,自定義,屬性,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解HTML5 data-* 自定義屬性》相關的同類信息!
  • 本頁收集關于詳解HTML5 data-* 自定義屬性的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 久久99精品久久久久久秒播| 外国街头吻胸吃乳视频大全| free欧美Ass性HD| 坐公交忘穿内裤被挺进老| 高肉h将军又大又长又粗| ww777766香港最快开奖结果| 国产精品嫩草影院免费| HEYZO–1199在线观看| GOGOGO高清免费完整版游戏| h成人在线观看| 国产97色在线亚洲桃色| 牝教师1~6全集樱花动漫| 成熟女人毛片WWW免费版在线| 和寡妇做受不了视频| 将军跪撅含玉势绳衣调教小说 | 里番本子侵犯肉全彩无遮| 男女插插动态图| 校花上课翘臀让我进| 痳痳让我挺进她的黑泬| 教室内污辱女教师在线播放| 国产无遮挡又黄又爽的网站 | 一级A片又大又黄又爽| 黄色a免费| 一男四女乱肉荒岛小说| 少妇熟女视频一区二区三区| 韩国大尺度《偷欢2》了| 伦理电影午夜伧理片| 一级肉体全黄裸片| 国产A视频在线观看| 丝袜视频app| 山楂视频不看不行污| 一级黄视频| 啊啊啊啊啊啊舒服| 荡女湮春bd护士| 久久精品欧美AV无码四区| 美女被吸乳脱内内打屁股动漫| 日韩精品一区二区三区四区蜜桃| 最刺激的亂倫在线播放| 再深点灬舒服灬太大了口述全过程| 日本韩国亚洲欧美中文字幕| 西西人体做爰午夜大胆电影 |