Attribute 和 Property 都是 Web 网页常见的属性名词
- 把 HTML 中的属性称之为 attribute
- 把 DOM 对象中的 key 称之为 property
大多数情况,它们都能够一一对应起来,但它们的行为不是完全一致的,否则我们会有下面这一个 API 呢?Element.getAttribute()
这个 API 可以完全拿到 HTML 上设定的属性值,在此之上定义的值一般都不会变,我们写什么,拿到的就是什么
浏览器读取 HTML 的时候,会把相应的 HTML 元素在 JavaScript 中以 DOM 的方式呈现出来,attribute 就在此时读取,只有那些有含义的、有效的属性可以能够和 property 对应起来,如果 attribute 是无效的,那就无法对应了,property 可能为空,也可能为其他值。然后,有一种 data-*
的 attribute 属性能够以 dataset 的方式在 property。
<div class='' data-name="John"></div>
参看: