0

当我在全局范围内尝试这个时:

document.getElementById("p1").innerHTML ="Howdy mate";

它不起作用,firebug 报告错误:

TypeError: document.getElementById is null

但是在函数内部时,相同的指令效果很好:

function sayHello(){
    document.getElementById("p1").innerHTML ="Howdy mate";
}

我还没有找到任何文献来解释这种行为。任何人都可以帮忙吗?

编辑:@All,正确的错误信息是

document.getElementById("p1") is null 不是

Window.getElementById("p1") is not a function

如前所述。我已更正。

4

2 回答 2

3

可能是您在document.getElementById("p1").innerHTML ="Howdy mate"; 加载元素之前调用的?

http://jsbin.com/abejiz/1/edithttp://jsbin.com/abejiz/2/edit

于 2013-04-14T18:56:54.173 回答
0

@All,我按照@user2264587 的回答修改了我的代码。问题是我将我的 javascript 代码加载到<head>文档的标签中,而<p>元素id="p1"位于<body>. 因此,javascript 指令实际上是在<p>加载元素之前执行的。我现在已经在里面<body>和之后放置了代码<p>

<body>
...
<p id="p1"><p>
<script>
        document.getElementById("p1").innerHTML ="Howdy mate";
</script>

</body>

它工作正常。

于 2013-04-14T19:43:18.403 回答