AI 赋能应用,代码定义未来
用全新 AI 数字人・智能应用・重构数字体验服务

HTML5数据集属性dataset

发表日期:2024-12-13 浏览次数:2411 来源:前端开发 编辑:Monster

有时候在HTML元素上绑定一些额外信息,特别是JS选取操作这些元素时特别有帮助。通常我们会使用getAttribute()和setAttribute()来读和写非标题属性的值。但为此付出的代价是文档将不再是合法有效的HTML。


对此,HTML5提供了一个解决方案。在HTML5文档中,任意以"data-"为前缀的小写的属性名字都是合法的。这些“数据集属性”将不会对其元素的表现产生影响,它们定义了一种标准的、附加额外数据的方法,并不是在文档合法性上做出让步。


HTML5还在Element对象上定义了dataset属性。该属性指代一个对象,它的各属性对应于去掉前缀的data-属性。因此dataset.x应该保存data-x属性的值。带连字符的属性对应于驼峰命名法属性名。如Element属性data-jquery-test在js中对应于dataset.jqueryTest属性。


注意,dataset属性是Element的data-属性的实时、双向接口。设置或删除dataset的一个属性就等同于设置或移除对应元素的data-属性。


var top1=document.getElementById("top1");

var ds=top1.dataset;

//Element为<span id="top1" data-jquery-test="lalala">你好!</span>

console.log(ds.jqueryTest);//lalala

//Element为<span id="top1" data-jquery-test="hello!">你好!</span>

console.log(top1.getAttribute("data-jquery-test"));//hello!  


top1.setAttribute("data-jquery-test2","hello2");  

//Element为<span id="top1" data-jquery-test="hello!" data-jquery-test2="hello2">你好!</span>  

console.log(ds.jqueryTest2);//hello2  

 

delete ds.jqueryTest2;  

//<span id="top1" data-jquery-test="hello!">你好!</span>  

console.log(top1.getAttribute("data-jquery-test2"));//null  


本站文章均为深正网站建设摘自权威资料,书籍,或网络原创文章,如有版权纠纷或者违规问题,请即刻联系我们删除,我们欢迎您分享,引用和转载,但谢绝直接搬砖和抄袭!感谢...
关注深正互联
填写电话 ≠ 打扰
只给您多一份选择,少一份顾虑
您可拨打以下电话联系我们技术总监
138 2888 4598
用心将技术和服务
遍布全中国乃至世界...
138-2888-4598
我们坚信无论您在哪里我们都能为您提供优质的服务!
请填写您的需求
您希望我们为您提供什么服务呢
数字人 AI应用 O2O电商 智联AioT APP开发 小程序开发 ERP/CRM系统开发 电脑系统开发
您的预算
3万-5万 5万-8万 8万-10万 10万-15万 15万以上
0.714463s