【问题标题】:JavaScript Element.value vs Element.getAttribute("value") [duplicate]JavaScript Element.value vs Element.getAttribute("value") [重复]
【发布时间】:2013-07-03 21:13:31
【问题描述】:

我最近开始学习 JavaScript,但有些东西让我感到困惑:

Element.valueElement.getAttribute("value")有什么区别?

实际上我的问题是,当我尝试将类型为 textinput 元素的值复制到另一个时,如果我使用第一种方法 (Element.value) 它工作正常,但如果我选择第二种方法它复制给元素的第一个值,当我更改 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);
    };

};

【问题讨论】:

    标签: javascript html dom attributes


    【解决方案1】:

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

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

    那个属性是你使用Element.value之后得到的,这就是用户或大多数JavaScript函数所改变的。当用户通过界面更改值时,属性不会改变。

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

    【讨论】:

    • 感谢先生的回答;)
    【解决方案2】:

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

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

    jsFiddle DEMO

    【讨论】:

    猜你喜欢
    • 2012-08-12
    • 2011-12-24
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 2011-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多