attributes
属于html
中的属性 翻译为特性
properties
属于DOM
对象中的属性 翻译为属性
正常我们创建一个HTML
元素时,浏览器会解析出这个对象和它拥有的一些属性
比如
<input type="text" value="name" />
这个input
就有两个属性。
当我们通过DOM对象去获取属性,他们却不一定是简单的1对1的关系。
比如
<input id="the-input" type="text" value="Name:">
这个DOM节点有三个属性id
,type
,value
.
1、id
这个属性(properties
)是映射的是html id
的特性(attributes
)。这个是不能改变和受限制的。是纯映射
2、type
这个属性(properties
)是映射的是html type
的特性(attributes
)。但这个不是纯映射关系
假设我们把设置为<input type='foo'>
theInput.getAttribute("type") //输出的是foo
theInput.type // 输出的是text
因为 type的属性是被限定在指定的值
3、相反的value
这个属性(properties
),不是映射到html 'value'特性(attributes
)。而是映射input现在的value。会随着输入的值变化而变化
假设我们输入的值join
theInput.value // 输出 "John"
theInput.getAttribute('value') // 输出 "Name:"
如果你想知道 input
的初始值是哪个。可以使用defaultValue
这个属性。这个是与Value
纯映射的