20

私はjavascriptが初めてですが、divタグのinnerhtmlを変更しようとしています.heres私のスクリプトとそれが機能していません:

<head>
<script type="text/javascript">
function var1() {
document.getElementById('test').innerHTML = 'hi';
}
window.onLoad = var1();
</script>
</head>
<body>
<div id="test">change</div>
</body>

それはうまくいくはずですが、何らかの理由でそうではありません。

4

7 に答える 7

24

var1に代入するのではなく、window.onload現在関数を呼び出してその結果を保存しています。また、これは明らかかもしれませんがvar1、関数の奇妙な名前のように思えます。これを試して:

function var1() {
  document.getElementById('text').innerHTML = 'hi';
}

window.onload = var1;

onloadの大文字と小文字、および の後の括弧の欠落に注意してくださいvar1

于 2010-02-12T20:24:01.643 に答える
6

正しい:

window.onload = var1;

window.onload の値の例ではundefined、関数 var1 が何も返さないためです ( undefined)。関数 var1() を呼び出した結果ではなく、関数 var1 に onload プロパティを設定する必要があります。

于 2010-02-12T20:16:50.063 に答える
6

を使用すること.innerHTML非標準であり、多くの理由でひどい慣行です。適切な標準メソッドを使用して新しい要素を作成し、必要な場所にツリーに追加する必要があります

于 2010-02-12T20:29:48.517 に答える
1

「test」という ID を持つ要素を取得していますが、HTML にその ID を持つ要素はありません。ただし、「テキスト」と呼ばれるものがあります。

于 2010-02-12T20:13:01.227 に答える
1

「onLoad」で大文字の「L」を小文字の「L」に変更し、現在window.onLoad = var1();がある var1 の後の括弧を削除すると、例が機能します。

于 2010-02-12T20:32:37.183 に答える
0

onLoad を onload に変更してみてください。

関数 var1() {
  document.getElementById('test').innerHTML = 'hi';
}
window.onload = var1; // オンロード
于 2010-02-12T20:29:23.507 に答える