我最近开始学习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>
答案 0 :(得分:9)
不同之处在于element.value
是实时的,如果用户更改,例如文本框输入,则会反映出来,并显示新值。
虽然getAttribute('value')
仍会显示原始value="whateverWasHere"
值。
答案 1 :(得分:2)
value
属性的值是您在编写HTML时设置的值。
此属性的值在读取时用于填充元素的value
属性。
属性是您在使用Element.value
后获得的内容,也就是用户或大多数JavaScript函数所改变的内容。当用户通过界面更改值时,属性不会更改。
简而言之,您几乎总是希望使用Element.value
而几乎不会Element.getAttribute("value")
。