HTML中attribute属性与JavaScript中property属性联系与区别

attribute:是HTML标签上的某个属性, 无论value的值是什么类型都会编译为字符串类型

property:是js获取的DOM对象上的属性值,

 

初步联系:

  在js中获取到dom对象时, dom对象拥有各种property, 被封装在properties中

  其中一个property为attributes列表, 里面存储着HTML标签中的原生属性,

     而几个常用的attribute(即是html标签自带的属性)会作为property附加到properties中作为property进行操作

    对于自定义的属性, 无法生成相对应的property, 

    为了方便能直接将自定义的attribute直接生成相对应的property, HTML5提供一个将自定义标签写作 "data-属性" 的形式, 能够自动被封装到一个名为"dataset"的property中

 


---什么是attribute?
html的预定义和自定义属性
---什么是property?
js对象身上的直接属性
---什么是布尔值属性,什么是非布尔值属性?
property所对应的属性值是否布尔类型
---attribute和property的同步关系
非布尔值属性
实时同步
布尔值属性
没有动过property
attribute会同步property
       其实可以理解为一直都不同步,因为property中支持boolean属性, 但是attribute不支持boolean属性,
       所谓的同步只是在初始化之后两个拥有相同的值,只是共同保持初始状态

property不会同步attribute
动过property
attribute不会同步property
property不会同步attribute
---浏览器认谁,用户操作的是谁
property
---在jQuery中的体现
attr()
prop()
---总结
布尔值属性最好使用prop方法
非布尔值属性attr方法
---html5中有关的属性
classlist:相对于class的property(className)
add
remove
toggle
dataset:自定义属性(限制 data-x-y)的property
posted @ 2020-10-13 15:28  0龙行者0  阅读(260)  评论(0编辑  收藏  举报