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 回答