我记得以前学的时候,只要在全局声明了变量,function 内也能用,可这里为什么出错呢?
正常情况:
<script>
function addTextNode(text)
{
var newtext = document.createTextNode(text);
var p1 = document.getElementById("p1"); //这句为什么不能定义在外面!!
p1.appendChild(newtext);
}
</script>
<body>
<button onclick="addTextNode('WE CAN!');">WE CAN!</button>
<hr/>
<p id="p1">First line of paragraph.</p>
</body>
错误情况:
<script>
var p1 = document.getElementById("p1"); //这句为什么不能定义在外面!!
function addTextNode(text)
{
var newtext = document.createTextNode(text);
p1.appendChild(newtext);
}
</script>
<body>
<button onclick="addTextNode('WE CAN!');">WE CAN!</button>
<hr/>
<p id="p1">First line of paragraph.</p>
</body>
在执行<script>
的时候,文档还没有载入完,<p id="p1">
在下面,还没被载入,所以此处var p1
获取不到东西。如果把这段script放到<p id="p1">
的下面,就能正常工作。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。