12

我只是想知道两者之间有什么区别。我注意到这两种方法有时会给出不同的结果。

4

2 回答 2

24

不同之处在于它element.value是实时的,如果用户更改了文本框输入,它将反映这一点,并向您显示新值。

WhilegetAttribute('value')仍将显示原始value="whateverWasHere"值。

jsFiddle 演示

于 2012-08-15T17:01:54.177 回答
10

.value不映射到任何属性。

.defaultValue映射到"value"属性。因此,当您说elem.getAttribute("value")这与elem.defaultValue.

此外,.defaultValue反映.value输入未触及的时间(脏值标志为 false)。用户交互更改输入值后,此映射停止。当输入未被改变时,您可以更改.defaultValue(因此.setAttribute("value"))并看到它也发生了变化.value。并不是说这实际上有用,但有趣的琐事。

于 2012-08-15T17:05:19.303 回答