attribute: 是dom元素在文档中作为html标签拥有的属性,如
id,class,src,title,alt
等标签属性,也可以自定义属性,通过dom.setAttribute('class', 'a')
来设置属性,通过dom.getAttribute('class', 'a')
来获取属性;
property: 就是dom元素在js中作为对象拥有的属性。 赋值
dom.className = 'a'
;取值dom.className
;
区别:
相同: 对于html的标准属性来说,
attribute
和property
是同步的,是会自动更新的。
不同: 但是对于自定义的属性来说,他们是不同步的。
请看下面例子。
<div id="test">测试数据</div>
<button id="add">添加属性</button>
<button id="delete">删除属性</button>
window.onload=function(){
var dom=document.getElementById("test");
var addBtn=document.getElementById("add");
var delBtn=document.getElementById("delete")
addBtn.onclick=function(){
dom.setAttribute("class","name");
dom.setAttribute("test","name");
};
delBtn.onclick=function(){
dom.className="";
dom.test="";
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
操作标准属性(没添加属性之前————>添加属性之后————>删除属性之后)修改成功 。 className已经成空了。
操作自定义属性(没添加属性之前————>添加属性之后————>删除属性之后) 没修改成功 。
test
自定义属性还存在。