attribute 和 property 是 Web 开发中,比较容易混淆的概念,而对于 value,因其特殊性,更易困惑,本文尝试做一下梳理和例证
attribute 和 property 的概念
简单的说,attribute 是元素标签的属性,property 是元素对象的属性,例如:
<input id="input" value="test value">
<script>
let input = document.getElementById('input');
console.log(input.getAttribute('value')); // test value
console.log(input.value); // test value
</script>
- input 的 value attribute 是通过标签里的 value=“test value” 定义的,可以通过 input.getAttribute(‘value’) 获取,可以通过 input.setAttribute(‘value’, ‘New Value’) 更新
- input 的 value property 可通过 input.value 获取和更新,初始值是与 attribute 中的赋值一致的