JavaScript dataset
dataset屬性用來管理HTML元素自定義屬性。
特別說明:僅對符合HTML5規範,通過data-*語法格式規定的自定義屬性有效。
關於data-*可以參閱data-* 自定義屬性一章節。
一.HTML屬性:
HTML屬性分為內建標準屬性與自定義屬性。
內建標準屬性,例如:
(1).id:元素的唯一標識。
(2).title:為元素附加額外的資訊,通常滑鼠懸浮會顯示。
(3).class:與css的樣式類關聯。
自定義屬性:
HTML5之前沒有自定義屬性的標註規範,基本上可以是隨意定義。
程式碼如下:
[HTML] 純文字檢視 複製程式碼<div antzone="螞蟻部落"></div>
上面程式碼為div元素新增一個自定義屬性antzone,屬性值為"螞蟻部落"。
為了便於管理HTML5對自定義屬性進行了規範,通過dataset屬性可以實現對其管理。
二.dataset屬性:
利用此屬性可以自定義屬性的獲取、新增或者修改操作。
語法結構一:
[JavaScript] 純文字檢視 複製程式碼string = element.dataset.camelCasedName;
獲取指定名稱自定義屬性的值,
語法結構二:
[JavaScript] 純文字檢視 複製程式碼element.dataset.camelCasedName = string;
修改或者新增指定名稱的自定義屬性。
特別說明:屬性名稱如果有必要,需要用駝峰寫法,後面會有詳細介紹。
瀏覽器支援:
(1).IE11+瀏覽器支援此方法。
(2).edge瀏覽器支援此方法。
(3).谷歌瀏覽器支援此方法。
(4).opera瀏覽器支援此方法。
(5).火狐瀏覽器支援此方法。
(6).safria瀏覽器支援此方法。
程式碼例項:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> [data-softwhy]{ color:red; } </style> <script> window.onload=function(){ let odiv=document.getElementById("ant"); let obt=document.getElementById("bt"); obt.onclick=function(){ odiv.dataset.softwhy="螞蟻部落"; } } </script> </head> <body> <div id="ant">螞蟻部落softwhy.com</div> <input type="button" id="bt" value="檢視演示"/> </body> </html>
點選按鈕可以為div元素新增一個名稱為"softwhy"的自定義屬性。
程式碼執行效果截圖如下:
程式碼分析如下:
(1).新增自定義屬性data-softwhy。
(2).但是在通過dataset新增自定義屬性的時候,不能帶有"data-"。
(3).新增此自定義屬性後,會通過屬性選擇器div的字型顏色設定為紅色。
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> div{ width:120px; height:60px; text-align:center; } </style> <script> window.onload=function(){ let odiv=document.getElementById("ant"); let obt=document.getElementById("bt"); obt.onclick=function(){ odiv.innerHTML=odiv.dataset.antAone; } } </script> </head> <body> <div id="ant" data-ant-zone="螞蟻部落">螞蟻部落softwhy.com</div> </body> </html>
程式碼執行效果截圖如下:
程式碼分析如下:
(1).data-字首後面的屬性名稱也可以帶有連字元。
(2).當使用dataset屬性進行動態操作的時候,需要轉換為駝峰寫法。
三.與getAttribute/setAttribute的區別:
getAttribute和setAttribute方法也可以設定和獲取元素的屬性,主要區別如下:
(1).上述兩方法更加博愛,無論是否符合data-*語法格式,都可以順利獲取或者設定。
(2).dataset則是專門針對符合HTML5規範的自定義屬性的管理,更加方便。
(3).dataset屬性返回值是DOMStringMap物件,也就是說針對DOMStringMap物件的操作,然後影響到HTML元素,而getAttribute/setAttribute方法則是針對字串的操作。dataset屬性返回值截圖如下:
相關文章
- 【Dataset】Maple-IDS - Network Security Malicious Traffic Detection Dataset
- Mmdetection dataset pipline
- tensorflow dataset APIAPI
- image-classification-dataset
- Pytorch Dataset入門PyTorch
- Dataset和Dataloader的使用
- dataset、setAttribute()和getAttribute() 區別
- flink batch dataset 的基本操作BAT
- MLE 5217 : Take-Home Dataset Classification
- CS209A Analysis of the Olympic Historical Dataset
- 05-快速理解SparkSQL的DataSetSparkSQL
- Spark SQL學習——DataFrame和DataSetSparkSQL
- Understanding Dataset Design Choices for Multi-hop Reasoning
- Pytorch入門上 —— Dataset、Tensorboard、Transforms、DataloaderPyTorchORBORM
- Pytorch建模過程中的DataLoader與DatasetPyTorch
- 【小白學PyTorch】3 淺談Dataset和DataloaderPyTorch
- Flink的DataSet基本運算元總結
- Spark API 全集(1):Spark SQL Dataset & DataFrame APISparkAPISQL
- flink將bathch dataset 轉換為sql操作BATSQL
- Torch 中Dataset 和Dataloader 的資料變換
- [python] 基於Dataset庫運算元據庫Python
- 在DataSet資料集中 DataView篩選資料View
- 第04講:Flink 常用的 DataSet 和 DataStream APIASTAPI
- Tensorflow 1.x 之 dataset.make_initializable_iterator
- 谷歌上線資料搜尋引擎 Dataset Search谷歌
- sqlconnection,sqlcommand,sqldataadapter,sqldatareader,dataset都是做什麼用的?SQLLDAAPT
- delphi+lazarus通用的dataset(二進位制+json)序列JSON
- echarts使用dataset資料集建立單軸散點圖Echarts
- ISCXTor2016資料集(Tor-nonTor dataset)介紹
- 如何使用TensorFlow中的高階API:Estimator、Experiment和DatasetAPI
- dataset 判斷整列是否有重複,找出重複資料
- 大資料開發-Flink-資料流DataStream和DataSet大資料AST
- 3DRealCar: An In-the-wild RGB-D Car Dataset with 360-degree Views3DView
- 目前最強效能的人臉檢測演算法(Wider Face Dataset)演算法IDE
- 加速訓練之並行化 tf.data.Dataset 生成器並行
- 人臉識別資料集 - Multi-Task Facial Landmark (MTFL) dataset
- 人臉識別資料集 - Large-scale CelebFaces Attributes (CelebA) Dataset
- tf.data.Dataset.shuffle(buffer_size)中buffer_size的理解