DOM节点Attribute和property有何区别
property是DOM中的属性,是JavaScript里的对象;
attribute是HTML标签上的特性
dom中的属性默认存在,比如
<input type="text" id="test1" attr='1'/>
打印后value的值为NULL;
基于JavaScript分析property 和 attribute
```html
<input type="text" id="test1" attr='1' value="1" />
打印后得到
attributes: NamedNodeMap
value: "1"
id: "test1"
在attributes同级别的key都是property。
运行以下逻辑代码:
var in1 = document.getElementById('test1');
in1.value = 'new value of prop';
console.log(in1.value); // 'new value of prop'
console.log(in1.attributes.value); // 'value="1"'
可见改变property后attributes的值不会得到同步更新。
再运行以下代码:
in1.attributes.value.value = 'new value of attr';
console.log(in1.value); // 'new value of attr'
console.log(in1.attributes.value); // 'new value of attr'
可见改变attributes里的property值后property会跟着变化。