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

Javascript Java脚本中返回属性先前值的getAttribute(attr)方法,javascript,html,dom,Javascript,Html,Dom,无法获取elem.getAttribute(“someAttribute”)不返回更新值的原因 var input=document.body.children[0] input.value='newValue' 警报(input.getAttribute('value'))/“previousValue”,未更改! 虽然元素实例上的某些属性确实是属性的直接反映(例如,rel属性直接反映link元素上的rel属性,className直接反映class属性),但情况并非总是如此 value属性

无法获取elem.getAttribute(“someAttribute”)不返回更新值的原因


var input=document.body.children[0]
input.value='newValue'
警报(input.getAttribute('value'))/“previousValue”,未更改!

虽然元素实例上的某些属性确实是属性的直接反映(例如,
rel
属性直接反映
link
元素上的
rel
属性,
className
直接反映
class
属性),但情况并非总是如此

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


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

试试这个,它可以工作:

<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>

var input=document.body.children[0];
input.setAttribute('value','newValue');
警报(input.getAttribute('value');/'“以前的值”未更改!

尝试并替换代码将使我成为优秀的文档编写者,但不是程序员。因此,通过解释OP的代码为什么不起作用来更好地回答问题。@ShoaibChikate这里是TJ的另一篇优秀文章,它更深入地解释了HTML属性和DOM属性:这里是对这种特定行为的更技术性的解释:非常感谢。非常有用的链接