一、自定义属性:
首先我们来弄清楚什么是自定义属性:
<ul>
<li age='10'>A</li>
<li age='11'>B</li>
<li age='12'>C</li>
<li age='13'>D</li>
</ul>
由html的基础知识我们知道,html标签是不存在age属性的,而此时我们自己添加上去的age属性就称之为自定义属性。由于DOM.的方式只能获取html标签原有的属性,因此自定义属性就不可以直接通过该方式进行操作,比如下面这段代码,就会输出undefined:
var list = document.getElementsByTagName('li');
for(let i = 0;i<list.length;i++){
list[i].onclick = function(){
console.log(this.age); //结果为undefined
}
}
二、原生JS操作自定义属性:
//自定义属性的获取:
对象.getAttribute('键');
//自定义属性的添加与修改
对象.setAttribute('键',值);
//自定义属性的删除:
对象.removeAttribute('键');
需要注意的是get/set/removeAttribute方法不仅仅可以操作自定义属性,还可以对DOM的系统属性进行操作(系统属性.方式更便捷)
三、jQuery操作属性:
jQuery中可以通过attr方法直接操作所有属性:
//属性的获取:
$('对象').attr(属性)
//属性的添加与修改
$('对象').attr(属性,值)
//属性的删除:
$('对象').removeAttr(属性);
需要注意的是,jQuery中attr方法在操作表单元素选中属性时(selected、checked等)时返回的时undefined。这是就需要使用prop方法:
//属性的获取:
$('对象').prop(属性);
//属性的添加与修改
$('对象').prop(属性,值);
tips:prop一般用来设置js对象的属性,故不会再html中显示;attr是这设置html属性,可显示