Java Script中的getAttribute(attr)方法返回属性的先前值

时间:2014-10-30 08:09:18

标签: javascript html dom

无法理解为什么elem.getAttribute(“someAttribute”)不会返回更新的值。

<body>
  <input type="text" value="previousValue">
  <script>
    var input = document.body.children[0]
 
    input.value = 'newValue'
 
    alert(input.getAttribute('value')) // 'previousValue', not changed!
  </script>
</body>

任何人都能解释一下吗?

2 个答案:

答案 0 :(得分:5)

虽然元素实例上的某些属性是属性的直接反映,但rel属性直接反映了rel元素上的link属性,这是正确的。 ,className直接反映了class属性),但这并不总是

value属性不是value属性的直接反映。它从属性中获取初始值,但设置它不会影响属性(通过getAttributedefaultValue属性仍然可用)。 (还有一些不是直接反射; href元素上的a属性为您提供绝对路径,但href 属性可以是相对路径。)

如果要设置属性,请使用setAttribute。 (并仔细测试您想要支持的任何IE版本,因为Microsoft有这样的错误。)

答案 1 :(得分:0)

试试这个,它正在运作:

<body>
    <input type="text" value="previousValue">
    <script>
        var input = document.body.children[0];
        input.setAttribute('value', 'newValue');
        alert(input.getAttribute('value')); // 'previousValue', not changed!
    </script>
</body>