スクリプト 1はログに記録されますが、ブラウザーは引き続き要素をOnetwo
としてレンダリングします。フォームは値も送信します。スクリプト 2は、ログを記録し、レンダリングし、送信します。私はそれらが同義語であり、同じことをすることを期待しています。それらが異なる理由と、同じ矛盾に注意する必要がある他の場所を説明してください.select
one
two
私が理解しているように、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);