web-dev-qa-db-ja.com

javascript change innerhtml

わかりました、JavaScriptで新しいですが、divタグのinnerhtmlを変更しようとしていますが、スクリプトが機能していません。

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

それは動作するはずですが、何らかの理由で動作しません、何か助けはありますか?

15
David

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

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

window.onload = var1;

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

18
Aistina

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

6
user177800

正しい:

window.onload = var1;

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

5
Anatoliy

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

1
pdavis

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

1

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

 function var1(){
 document.getElementById( 'test')。innerHTML = 'hi'; 
} 
 window.onload = var1; // onload 
0
johnmdonahue

以下は別のより単純なバージョンです

<body>
 <div id="test">change</div>
  <script type="text/javascript">
   document.getElementById('test').innerHTML = 'hi';
 </script>
</body>
0
Ashraf Alam