Fe-interview: [js] 第159天 在js中attribute和property的区别是什么?

Created on 21 Sep 2019  ·  9Comments  ·  Source: haizlin/fe-interview

第159天 在js中attribute和property的区别是什么?

js

Most helpful comment

  • attribute

    • 元素在HTML中的键值对
    • attribute 会始终保持 html 代码中的初始值(除了href)
  • property

    • attribute在对应的JS DOM节点上的对象属性
    • Property是有可能变化的(跟随用户操作).
  • 其他补充

All 9 comments

attribute 是标签对应的属性列表,一般是type id class等。
自定义的属性和值也会在attributes 中。
property 是dom的默认属性列表

  • attribute

    • 元素在HTML中的键值对
    • attribute 会始终保持 html 代码中的初始值(除了href)
  • property

    • attribute在对应的JS DOM节点上的对象属性
    • Property是有可能变化的(跟随用户操作).
  • 其他补充

@vkboo 链接多了一半括号 https://zhuanlan.zhihu.com/p/70671215

@justjavac 的最后一项,
更新 value 时,属性和特性的更新是什么样的呀

@vkboo 链接多了一半括号 https://zhuanlan.zhihu.com/p/70671215

@justjavac 在理解的基础上,用一句话概括:浏览器解析之前全都是特性,解析之后分情况:标准特性的值将被解析并挂载到 DOM属性上,非标准特性只可用DOM的 getAttribute 等方法取值。

这样说应该问题不大吧?

@foreverZ133 非标准的不做任何映射,只能通过 getAttribute 等函数获取到值,值是字符串类型。

@foreverZ133 非标准的不做任何映射,只能通过 getAttribute 等函数获取到值,值是字符串类型。

噢,一个会改变 html 一个不会,突然冒出来个特性搞蒙了,Thanks

1、property和attributies都是properties的子集,而每个attribute是attributies的子集;
2、attribute可以理解为特性,可以自定义,直接在html标签上添加的和使用setAttribute添加的情况一致,即html标签添加的都是attribute属性, property则是使用xx.属性进行更改,通常来讲,更改互相影响(value除外)
3、当添加新的非默认属性时,是不互通的;
4、一些特殊属性,则需要特殊对待。

property能够从attribute中得到同步;
attribute不会同步property上的值;
attribute和property之间的数据绑定是单向的,attribute->property;
更改property和attribute上的任意值,都会将更新反映到HTML页面中;

property是DOM中的属性,DOM是JavaScript里的对象;
attribute是HTML标签上的特性,它的值只能够是字符串;

Was this page helpful?
0 / 5 - 0 ratings