_<html>
<head>
<title>Test javascript</title>
<script type="text/javascript">
var e = document.getElementById("db_info");
e.innerHTML='Found you';
</script>
</head>
<body>
<div id="content">
<div id="tables">
</div>
<div id="db_info">
</div>
</div>
</body>
</html>
_
alert(e);
を使用すると、null
....が表示され、画面上に "found found"が表示されないことは明らかです。私は何を間違えていますか?
問題は、要素が存在する前にアクセスしようとしていることです。ページが完全にロードされるまで待つ必要があります。可能なアプローチは、onload
ハンドラーを使用することです。
window.onload = function () {
var e = document.getElementById("db_info");
e.innerHTML='Found you';
};
ただし、最も一般的なJavaScriptライブラリはDOM対応のイベントを提供します。 window.onload
もすべての画像を待機するため、これは優れています。ほとんどの場合、それは必要ありません。
もう1つの方法は、スクリプトタグを閉じる</body>
- tagの直前に配置することです。これは、実行時にその前のすべてがロードされるためです。
スクリプトタグ内でコードを実行するタイミングをブラウザーはどのように知るのですか?したがって、ウィンドウが完全にロードされた後にコードを実行するには、
window.onload = doStuff;
function doStuff() {
var e = document.getElementById("db_info");
e.innerHTML='Found you';
}
もう1つの方法は、<script...</script>
終了直前</body>
鬼ごっこ。
body
タグを閉じる直前に、onloadイベントでコードを実行します。あなたはそれをする瞬間にそこにない要素を見つけようとします。
要素が存在する前にスクリプトが呼び出されます。
次のいずれかを試してください。
スクリプトは、ボディのDOMが構築される前に実行されます。すべてを関数に入れて、body要素のonload
から呼び出します。