无法理解为什么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>
任何人都能解释一下吗?
答案 0 :(得分:5)
虽然元素实例上的某些属性是属性的直接反映,但rel
属性直接反映了rel
元素上的link
属性,这是正确的。 ,className
直接反映了class
属性),但这并不总是
value
属性不是value
属性的直接反映。它从属性中获取初始值,但设置它不会影响属性(通过getAttribute
和defaultValue
属性仍然可用)。 (还有一些不是直接反射; 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>