我只是想知道两者之间的区别。我注意到这两种方法有时会产生不同的结果。
答案 0 :(得分:17)
不同之处在于element.value
是实时的,如果用户更改,例如文本框输入,则会反映出来,并显示新值。
虽然getAttribute('value')
仍会显示原始value="whateverWasHere"
值。
答案 1 :(得分:10)
.value
不会映射到任何属性。
.defaultValue
映射到"value"
属性。因此,当您说elem.getAttribute("value")
与elem.defaultValue
相同时。
此外,.defaultValue
反映输入未受影响时的.value
(dirty value flag is false)。通过用户交互更改输入的值后,此映射将停止。虽然输入未受影响,但您可以更改.defaultValue
(以及.setAttribute("value")
)并查看其更改.value
。并不是说这实际上是有用的,但有趣的是琐事。