0
<!DOCTYPE HTML>
<html>
<head>
<script>
document.write("TEST1")
document.getElementById("demo").innerHTML="TEST2"
document.write("TEST3")
</script>
</head>

<body>
<p id="demo">TO_BE_REPLACED</p>
</body>
</html>

出力は次のとおりです。TEST1

TO_BE_REPLACED

javascriptの実行がで停止したようdocument.getElementById("demo").innerHTML="TEST2"です。なぜ実行されないのですか?

4

2 に答える 2

3

スクリプトの実行中は、<p id="demo"> まだ存在しません。したがって、document.getElementById('demo')は を返しnull、代入しようとするとエラーが発生しますnull.innerHTML = "TEST2"

このエラーはすべての実行を停止するため、最終的なTEST3.

于 2013-02-19T02:47:29.260 に答える
1

ウィンドウがロードされたときに呼び出される関数でスクリプトを囲む必要があります(「window.onload」イベントを使用)。

<!DOCTYPE HTML>
<html>
<head>
<script>
    function replaceDemoText()
    {
        document.getElementById("demo").innerHTML="TEST2";
    }
    window.onload = replaceDemoText;
</script>
</head>

<body>
<p id="demo">TO_BE_REPLACED</p>
</body>
</html>
于 2013-02-19T02:58:13.487 に答える