当我在全球范围内尝试这个时:
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
如前所述。我纠正了。
答案 0 :(得分:3)
可能是你在呼叫document.getElementById("p1").innerHTML ="Howdy mate";
在加载元素之前?
http://jsbin.com/abejiz/1/edit vs http://jsbin.com/abejiz/2/edit
答案 1 :(得分: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>
工作正常。