在HTML5中可为所有元素添加一种自定义的属性,这种属性的前缀以data-开头,比如:data-name,目的是为元素提供与页面渲染无关,但与dom元素强相关的属性。添加完自定义属性后我们可以通过元素的dataset属性来访问其值。
-
html结构:
<p data-name='pName' data-nick-name='dear pName' data-gender='female' myname='数据集访问不到'> 我是p </p>
- 1
-
js访问:
var p = document.querySelector('p'); console.log(p.dataset.name); // pName console.log(p.dataset.nickName); // dear Name console.log(p.dataset.gender); // female console.log(p.dataset); // DOMStringMap {name: "pName", nickName: "dear pName", gender: "female"} console.log(p.myname); // undefined
JQUERY 中使用
jquery的data()方法存取data-*
自定义属性,方法允许我们在DOM元素上绑定任意类型的数据,避免了循环引用的内存泄漏风险。主要的方法如下:
.data( key, value )
.data( obj)
.data( key )
.data()
总结:
从上面的代码我们可以知道,dataset属性值是DOMStringMap的一个实例,也就是一个键值对的映射,其实自定义属性很早就已经开始使用了,像京东,淘宝这些电商网站,审查他们的页面,可以看到很多。如果需要给元素添加一些不可见的数据以便进行其他处理,那就要用到自定义数据属性。在跟踪链接或者混搭应用中,通过自定义数据属性能方便地知道点击来自页面中的哪