8

最近 JavaScript の学習を始めましたが、混乱しているものがあります。

Element.value はどう違いElement.getAttribute("value") ますか?

実際に私の問題は、inputタイプが の要素の値textを別の要素にコピーしようとすると、最初の方法 ( Element.value) を使用すると正常に動作しますが、2 番目の方法を使用すると、要素に指定された最初の値がコピーされます。内のテキストを変更しても更新されtextboxません。この動作は奇妙に思えます。ここで何が起こっているのか説明してもらえますか?

<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 ファイル:

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);
    };

};
4

2 に答える 2

9

違いはelement.valueリアルタイムであり、ユーザーがテキストボックスの入力を変更すると、それが反映され、新しい値が表示されることです。

getAttribute('value')それでも元の値が表示されますvalue="whateverWasHere"

jsFiddle デモ

于 2013-07-05T17:52:02.177 に答える
2

属性のvalue値は、HTML を記述するときに設定したものです。

この属性の値は、読み取られると、要素のvalue プロパティを埋めるために使用されます。

そのプロパティは、後で使用したときに得られるElement.valueものであり、ユーザーまたはほとんどの JavaScript 関数によって変更されたものです。ユーザーがインターフェイスを介して値を変更しても、属性は変更されません

要するに、ほとんどの場合、 を使用Element.valueし、ほとんど使用したくないということElement.getAttribute("value")です。

于 2013-07-05T17:51:03.390 に答える