• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:getElementById取得時にvalueも)

JavaScriptでgetElementByIdでvalueを取得する方法について

このQ&Aのポイント
  • JavaScriptのgetElementByIdでvalueを取得する方法について質問があります。
  • 質問者は、html内のinput要素のvalueを一行でJavaScriptの変数に代入する方法について知りたいとしています。
  • 質問者の直感的な方法は、var price = document.getElementById('price').value;だと思いますが、エラーが出るそうです。代わりに、var priceForm = document.getElementById('price'); var price = priceForm.value;と書く必要があるとのことです。なぜこのような仕様なのか疑問に思っているようです。

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5320/13881)
回答No.1

var price = document.getElementById('price').value; でも問題ありません。 出ているエラーは「TypeError」ではありませんか? そうだとすると実行するタイミングの問題です。 ブラウザは、HTMLの先頭から順に解釈を始め、実行していきます。 「document.getElementById('price')」を実行する時点で、「<input type="text" id="price" value="9000">」のレンダリングが終わっていないと「price」と言うIDが見付けられないため「document.getElementById('price')」の実行結果は「null」が出てきます。 「null」に「value」プロパティは存在しないのでエラーになります。 なので、JabaScriptの記載位置を「body」の後に持ってくるか、 ========== var price = null; window.addEventListener('load', function(){ price = document.getElementById('price').value; }); ========== として、ページの読み込みが完了してから実行するようにしましょう。

mist55
質問者

お礼

ありがとうございました。 参考にさせていただきます。

すると、全ての回答が全文表示されます。