DOM中 property 和 attribute 详解

基本概念区别

Attribute

是HTML标签上的某个属性(特性),如‘type’,'id','value','class'以及自定义属性,它的值只能是字符串。利用setAttribute和getAttribute来设置和获取属性

Property

javascript获取到的DOM节点对象,比如a 你可以将他看作为一个基本的js对象,这个节点对象包括很多属性((property),比如“value”,“className”)

DOM中 property 和 attribute 详解

可以看到,attributes只是properties这个大货色中的某个属性,其余property也是这样(和attributes同级)但是注意!property是不能输出自定义属性的

再来看看attributes这货长什么样?

DOM中 property 和 attribute 详解

  • 对属性Property可以赋任何类型的值,而对特性Attribute只能赋值字符串!
  • 对于 html 的标准属性来说,attribute 和 property 是同步的,是会自动更新的
  • 但是对于自定义的属性来说,他们是不同步的.(自定义属性不会自动添加到property)

DOM中 property 和 attribute 详解

DOM中 property 和 attribute 详解

我们再来看看input的值

DOM中 property 和 attribute 详解

DOM中 property 和 attribute 详解

DOM中 property 和 attribute 详解

总结如下:

  • property比attribute'霸道',估计是'表哥'
  • property和attribute两者是属于单方面通信,即:

1.property能够从attribute中得到同步;

2.attribute不会同步property上的值;