0

重複の可能性:
jQuery または `getElementById` などの DOM メソッドが要素を見つけられないのはなぜですか?

私はこのスクリプトを持っています:

<script>
var dataoriginale = document.getElementById("savedataoriginale").value;
</script>

そしてこのテキストフィールド:

<input name="savedataoriginale" id="savedataoriginale" type="text" value="testtest">

しかし、javascript varを印刷しようとすると

<script>document.write(dataoriginale)</script>

私は未定義になります。

なんで?どうすれば修正できますか?

4

2 に答える 2

3

入力から値を取得する前に、2 つの競合 js セッションがあることが原因です。

ここに作業オプションがあります

<input name="savedataoriginale" id="savedataoriginale" type="text" value="testtest">
<script>
var dataoriginale = document.getElementById("savedataoriginale").value;
document.write(dataoriginale);
</script>
于 2013-01-28T13:28:23.870 に答える
2

おそらく、が の<script>前に実行されるため<input>です。DOM が解析されていないときにdocument.getElementById("savedataoriginale").value返されるために発生します。undefined

これを解決するには、<script>タグを の後に置き<input>、DOM が解析されるまでタグが実行されないようにします。次のように DOMContentLoaded イベントを使用することもできます。

document.addEventListener("DOMContentLoaded", function(){
  var dataoriginale = document.getElementById("savedataoriginale").value;
  alert( dataoriginale );
},false);

より詳しい情報:

PS。id要素にとname属性の両方を持つ必要はありません<input>。名前は非推奨です。IDで十分です。

于 2013-01-28T13:27:50.137 に答える