我最近开始学习 JavaScript,但有些东西让我感到困惑:
I've started learning JavaScript recently but there's something that I'm confused with :
Element.value
和 Element.getAttribute("value")
?
实际上我的问题是,当我尝试将类型为 text
的 input
元素的值复制到另一个时,如果我使用第一种方法(Element.value
) 它工作正常,但是如果我使用第二种方法它会复制给元素的第一个值,并且当我更改 textbox
内的文本时它永远不会更新,这种行为对我来说似乎很奇怪!你们能解释一下这里发生了什么吗?
actually my problem is , when I try to copy the value of an input
element with type of text
to another one , if I use the first method (Element.value
) It works fine but if I go with the second method It copies the first value given to the element and It never gets updated when I change the text inside the textbox
, this behavior seems odd to me ! can you guys please explain what's going on here ?
<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>
JavaScript 文件:
The JavaScript file :
var myButton;
window.onload = function () {
myButton = document.getElementById("Button1");
myButton.onclick = function () {
var val = document.getElementById("Text1").getAttribute("value");
//var val = document.getElementById("Text1").value;
document.getElementById("Text2").setAttribute("value", val);
};
};
不同之处在于 element.value
是实时的,如果用户更改,比如说文本框输入,它将反映,并向您展示新值.
The difference is that element.value
is real time and if a user changes let's say, a textbox input, it will reflect that, and show you the new value.
虽然 getAttribute('value')
仍会显示原始 value="whateverWasHere"
值.
While getAttribute('value')
will still show the original value="whateverWasHere"
value.
jsFiddle 演示
这篇关于JavaScript Element.value 与 Element.getAttribute("value")的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!