关于getElementsTagName的通配器的问题

<!DOCTYPE html>
<html>
 <head>
  <title>浏览器对象</title>  
  <script>
var g=document.getElementById("g");
var list=g.getElementsByTagName("*");
alert(list.length);
 </script>
</head>
<body>
    <ul id="g">
        <li>1</li>
        <li>1</li>
        <li>1</li>
        <li>1</li>
        <li>1</li>
        <li>1</li>
    </ul>
</body>
</html>

为什么会跳出Uncaught TypeError: Cannot read property 'getElementsByTagName' of null 

我看了好几遍 好像没有错 麻烦大家帮我看一下 非常感谢

Beckybei
浏览 1131回答 1
1回答

Annguowenhua

把<script>代码</script>移到<ul></ul>下面才会起作用,因为html文档是从上到下依次加载的,如果<head></head>里,先加载<script></script>里的代码,但body里的代码还未加载,所以不会起作用的。特别注意,在head中时,所代表的functions只加载而不执行,执行是在某一事件触发后才开始。 在body中时,直接加载并执行,如果有不在函数中的执行语句,比如变量初始化,如果在head中就不会执行。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript