JavaScript 自定义属性 data-* 详解与 dataset 操作指南
本文介绍 HTML5 中 data-* 自定义属性的定义、命名规范及与 HTML4 的差异。重点讲解如何通过 JavaScript 的 dataset 对象读取和设置属性值,包括驼峰命名转换规则,并结合 jQuery 对比说明实际应用场景,帮助开发者在不请求服务器的情况下存储和交互页面数据。
JavaScript 自定义属性 data-*
定义和用法
data-* 属性专门用于在页面或应用程序中存储私有的自定义数据。
该属性机制赋予了我们在所有 HTML 元素上嵌入自定义 data 属性的能力。
这些存储的(自定义)数据能够被页面的 JavaScript 中利用,以创建更好的用户体验(不进行 Ajax 调用或服务器端数据库查询)。
data-* 属性包括两部分:
- 属性名不应该包含任何大写字母,并且在前缀 "data-" 之后必须有至少一个字符
- 属性值可以是任意字符串
注释:用户代理会完全忽略前缀为 "data-" 的自定义属性。
HTML 4.01 与 HTML5 之间的差异
data-* 属性是 HTML5 中的新属性。
语法
<element data-*="somevalue">
属性值
| 值 | 描述 |
|---|---|
| somevalue | 规定属性的值(以字符串)。 |
实例
function showDetails(element) {
var elementType = element.getAttribute("data-type");
alert(element.innerHTML + "是" + elementType + "属性角色");
} <h1>角色</h1>
<p>点击某个角色来查看其属性:</p>
<ul>
<li onclick="showDetails(this)" id="fire" data-type="火">迪卢克</li>
<li onclick="showDetails(this)" id="thunder" data-type="雷">菲谢尔</li>
<li onclick="showDetails(this)" id="water" data-type="水">芭芭拉</li>
</ul>
使用dataset属性操作自定义属性
function showDetails(element) {
var elementType = element.getAttribute("data-type");
var h3 = document.getElementsByTagName('h3')[0]
alert(element.innerHTML + "是" + elementType + "属性角色");
h3.innerHTML = element.dataset.type
}<h1>角色</h1>
<p>点击某个角色来查看其属性:</p>
<ul>
<li onclick="showDetails(this)" id="fire" data-type="火">迪卢克</li>
<li onclick="showDetails(this)" id="thunder" data-type="雷">菲谢尔</li>
<li onclick="showDetails(this)" id="water" data-type="水">芭芭拉</li>
</ul>
<h3></h3>
在函数中alert语句前添加一行代码,对将被点击的元素的data-type赋值
element.dataset.type = '不知道啥属性'
<h1>角色</h1>
<p>点击某个角色来查看其属性:</p>
<ul>
<li onclick="showDetails(this)" id="fire" data-type="火">迪卢克</li>
<li onclick="showDetails(this)" id="thunder" data-type="雷">菲谢尔</li>
<li onclick="showDetails(this)" id="water" data-type="水">芭芭拉</li>
</ul>
<h3></h3>
<script>
function showDetails(element) {
var elementType = element.getAttribute("data-type");
var h3 = document.getElementsByTagName('h3')[0]
element.dataset.type = '不知道啥属性'
alert(element.innerHTML + "是" + elementType + "属性角色");
h3.innerHTML = element.dataset.type
}
</script> 
js获取自定义属性data-
Html5规范中规定自定义属性需要添加前缀data-,目的是提供与渲染无关的信息。
读取的时候是通过dataset对象,使用”.”来获取属性,需要去掉data-前缀
<div id="content" data-age="18">12345</div>var content= document.getElementById('content');
alert(content.dataset.age)
//jquery
$('#content').data('age');//读字符需要转化为驼峰命名
<div id="content" data-user-list="user_list">data-user_list自定义属性 </div>var content= document.getElementById('content');
alert(content.dataset.userList)
//jquery
$('#content').data('userList');//读到此这篇关于jQuery 获取与设置元素属性的详细方法(看完这篇文章就搞明白了)的文章就介绍到这了,更多相关jQuery 获取与设置元素属性内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
anime.js 快速入门:怎么引入库并编写第一个 DOM 动画
2026-11-05 14:22:43
在线JS解密后变量名仍乱码?结合浏览器DevTools调试还原
2026-11-04 20:26:01
怎么在浏览器中运行JavaScript代码并查看输出结果
2026-11-04 09:07:33
JS 获取屏幕分辨率:window.screen.width 与 height 用法
2026-11-04 08:52:48
为什么推荐用DOMContentLoaded代替window.onload初始化JS
2026-11-04 08:42:33
