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的标准属性来说,attributeproperty 是同步的,是会自动更新的。
不同: 但是对于自定义的属性来说,他们是不同步的。

请看下面例子。

<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

操作标准属性(没添加属性之前————>添加属性之后————>删除属性之后)修改成功className已经成空了。

操作自定义属性(没添加属性之前————>添加属性之后————>删除属性之后) 没修改成功test 自定义属性还存在。

Last Updated: 8/11/2020, 11:12:29 PM