Javascript Java脚本中返回属性先前值的getAttribute(attr)方法
无法获取elem.getAttribute(“someAttribute”)不返回更新值的原因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属性
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属性:这里是对这种特定行为的更技术性的解释:非常感谢。非常有用的链接