JavaScript Element.value vs Element.getAttribute(" value")

时间:2013-07-05 17:49:18

标签: javascript html5 dom attributes

我最近开始学习JavaScript,但有些事我很困惑:

Element.value Element.getAttribute("value") 之间有什么不同?

实际上我的问题是,当我尝试将类型为input的{​​{1}}元素的值复制到另一个时,如果我使用第一种方法(text)很好,但如果我使用第二种方法它复制给予元素的第一个值,当我更改Element.value内的文本时它永远不会更新,这种行为对我来说似乎很奇怪!你能解释一下这里发生了什么吗?

textbox

JavaScript文件:

<html>
<head>
    <meta charset="utf-8">
    <title>Hello JavaScript</title>
    <script src="script2.js"></script>
</head>
<body>
    <input id="Text1" type="text" />
    <input id="Button1" type="button" value="button" />
    <input id="Text2" type="text" />
</body>
</html>

2 个答案:

答案 0 :(得分:9)

不同之处在于element.value是实时的,如果用户更改,例如文本框输入,则会反映出来,并显示新值。

虽然getAttribute('value')仍会显示原始value="whateverWasHere"值。

jsFiddle DEMO

答案 1 :(得分:2)

value属性的值是您在编写HTML时设置的值。

属性的值在读取时用于填充元素的value 属性

属性是您在使用Element.value后获得的内容,也就是用户或大多数JavaScript函数所改变的内容。当用户通过界面更改值时,属性不会更改。

简而言之,您几乎总是希望使用Element.value而几乎不会Element.getAttribute("value")