HTML5规定可以为元素添加非标准的属性,但要添加前缀data-, 目的是为元素提供与渲染无关的信息,或者提供语义信息。
<div id="myDiv" data-appId="12345" data-myname="Nicholas"></div>
添加自定义属性之后,可以通过元素的dataset属性来访问自定义属性的值。dataset属性的值是DOMStringMap(对象)的一个实例。
var myDiv = document.querySelector('#myDiv');
//取得自定义属性的值
var appId = myDiv.dataset['appId'];
var myName = myDiv.dataset['myname'];
//设置自定义属性的值
myDiv.dataset['appId'] = 23456;
myDiv.dataset['myname'] = "Michael";
支持自定义属性的浏览器有IE11+、Firefox6+和Chrome。兼容性不是很好。
jQuery提供了一个方法data(obj)可以使用
//获取自定义属性的值
$('#myDiv').data('appId');
//设置自定义属性的值
$('#myDiv').data('appId','456789');
$('#myDiv').data({
'appId':987765,
'username':'huxiaosheng'
});