【发布时间】:2018-08-21 04:46:46
【问题描述】:
我对某些 DOM 元素的 property 与其对应的 attributes 之间的关系如何工作的原因感到困惑。
下面是jquery in action 2015 Bear Bibeault一书中的图表,显示了DOM元素的property和attribute之间的关系。
为了进一步解释这个概念,作者有以下代码和代码解释。
我的问题是,为什么有些property和attribute是同步的,为什么有些不同步,为什么有些attributes没有对应的property?
我找到了一个great post 解释了property 和attribute 之间的关系,但它没有涉及为什么要这样设计。我希望了解设计背后的原因。
一个相关的问题,如果我想获取或设置 DOM 元素的值,我应该获取/设置 property 还是 attribute?
当我们需要时,我们如何找到特定的property 与其对应的attribute 之间的关系?是否有专门详细说明这种关系的文件?
【问题讨论】:
-
它大多不是那样“设计”的。这是不同人在不同时间做出不同决定的有机结果。请注意,上面引用中的第二个要点是错误的。属性是否为布尔值并不能确定是否存在相互反映的同名属性和属性。
checked确实没有,但是,例如,布尔值autofocus属性和输入元素上的属性确实相互反映。checked属性改为由defaultChecked属性反映。 -
@Alohci 感谢您的 cmets。只是感觉属性和属性之间的关系非常混乱,以至于像我这样的初学者很难理解它。 :(
标签: javascript jquery html dom properties