スクリプト 1はログに記録されますが、ブラウザーは引き続き要素をOnetwoとしてレンダリングします。フォームは値も送信します。スクリプト 2は、ログを記録し、レンダリングし、送信します。私はそれらが同義語であり、同じことをすることを期待しています。それらが異なる理由と、同じ矛盾に注意する必要がある他の場所を説明してください.selectonetwo
私が理解しているように、DOM の要素は実際には属性selectを保持していません。value最初のメソッドは、それを明確に割り当て、その要素から値を取得します。レンダリングには影響しません。要素の場合、どのように正しく使用すればよいですsetAttributeかgetAttribute?select
デモ ドキュメント:
<select id="el">
<option value="one">One</option>
<option value="two">Two</option>
</select>
スクリプト 1:
document.getElementById('el').setAttribute('value','two');
console.log(document.getElementById('el').getAttribute('value'));
スクリプト 2:
document.getElementById('el').value = 'two';
console.log(document.getElementById('el').value);