自定义属性: 我们程序员自己添加的属性我们称为自定义属性
获取属性值
element.属性 获取内置属性值(元素本身自带的属性)
element.getAttribute(‘属性’) 主要获得自定义的属性(也可以获得内置属性)
<div id="time" class="nav" index="1"> </div>
其中id、class属于div的内置属性 index属于自定义属性
设置属性值
element.属性= ‘值’
element.setAttribute(‘属性’, ‘值’) 主要针对于自定义属性
需要注意的是 如果用element.setAttribute(‘属性’, ‘值’) 来设置class的属性值时比较特殊 里面直接写class就可以 不需要写className
移出属性
element.removeAttribute(属性) 移除一个属性
注意还是直接书写class 而不是className
H5自定义属性
自定义属性目的:是为了保存并使用数据。有些数据可以保存到页面中而不用保存到数据库中。
但是有些自定义属性很容易引起歧义,不容易判断是元素的内置属性还是自定义属性。
H5给我们新增了自定义属性:
h5规定自定义属性以data-开头作为属性名并赋值
比如:
<div getTime="20" data-index="2" data-list-name="andy"></div>
注意 使用时要把名字写全
element.setAttribute(‘data-index’, ‘2’)
获取时还可以使用element.getAttribute(‘data-index’) 来获取
h5新增:
element.dataset.index 或 element.dataset[‘index’] 存在兼容问题 ie11才开始支持 相信大家还是更喜欢用上面的方法
还是给大家体验一下书写的方式:
var div = document.querySelector('div');
// console.log(div.getTime);
console.log(div.getAttribute('getTime'));
div.setAttribute('data-time', 20);
console.log(div.getAttribute('data-index'));
console.log(div.getAttribute('data-list-name'));
// h5新增的获取自定义属性的方法 它只能获取data-开头的
// dataset 是一个集合里面存放了所有以data开头的自定义属性
console.log(div.dataset);
console.log(div.dataset.index);
console.log(div.dataset['index']);
// 如果自定义属性里面有多个-链接的单词,我们获取的时候采取 驼峰命名法
console.log(div.dataset.listName);
console.log(div.dataset['listName']);