HTML5自定义属性——data-
半野

1.简介

data-*HTML5才出现的属性,用于存储页面或应用程序的私有自定义数据。

我们能在 HTML 元素上嵌入自定义 data-* 属性存储的(自定义)数据,以便能够被页面的 JavaScript 中利用,以创建更好的用户体验(不进行 Ajax 调用或服务器端数据库查询)。

2.要求(规范)

  1. 属性名不应该包含任何大写字母,并且在前缀 “data-“ 之后必须有至少一个字符。

  2. 属性值可以是任意字符串

3.js读写方法

3.1.方法一,使用getAttribute/setAttribute

getAttribute用以获取data-*属性值,setAttribute用以设置data-*属性值,Html代码:

1
`<!DOCTYPE html> <html> <head> </head> <body> <div data-age='24' id='zg'>123</div> <script> var age=document.getElementById("zg").getAttribute('data-age'); alert(age) </script> </body> </html>`

结果:

image.png

3.2.方法二,使用元素的dataset属性

Dataset的内容只是attribute的一个子集,不同的是,dataset内只有data-*的属性的内容,若元素为

1
`<div data-age='24' id='zg' age='23'>123</div>`

则里面不会有age=’23’。

此外,使用dataset还有两个需要注意的地方:

  1. 我们在添加或读取属性的时候需要去掉前缀data-*;

  2. 如果属性名称中还包含连字符(-),需要转成驼峰命名方式,但如果在CSS中使用选择器,我们需要使用连字符格式。

例如(Html代码):

1
`<!DOCTYPE html> <html> <head> </head> <body> <div data-my-age='24' id='zg' age='23'>123</div> <script> var age=document.getElementById("zg").dataset.myAge; alert(age) </script> </body> </html>`

结果:

image.png

使用dataset赋值,只需直接赋值即可,例如:

1
`document.getElementById("zg").dataset.myAge='30'`

4.jQuery读写

4.1.data()方法

Html代码:

1
`<!DOCTYPE html> <html> <head> <script src="jquery-3.0.0.min.js"></script> </head> <body> <div data-my-age='24' id='zg' age='23'>123</div> <script> var age = $("#zg").data("myAge"); alert(age); $("#zg").data("myAge",40); age = $("#zg").data("myAge"); alert(age); </script> </body> </html>`

结果:

image.png

image.png

4.2.attr()方法

Html代码:

1
`<!DOCTYPE html> <html> <head> <script src="jquery-3.0.0.min.js"></script> </head> <body> <div data-my-age='24' id='zg' age='23'>123</div> <script> var age = $("#zg").attr("data-my-age"); alert(age); $("#zg").attr("data-my-age",44); age = $("#zg").attr("data-my-age"); alert(age); </script> </body> </html>`

结果:

image.png

image.png

由 Hexo 驱动 & 主题 Keep
总字数 105.7k 访客数 访问量