总是报错,不知道怎么解决
function byId(id){
return typeof(id) === "string"?document.getElementById(id):id;
}
//全局变量
var index=0,timer=null,
pics=byId("banner").getElementsByTagName("div"),
len=pics.length;
console.log(len);
pictureGun.js:8 Uncaught TypeError: Cannot read property 'getElementsByTagName' of null34
收起
正在回答
2回答
同学你好,这里是因为浏览器加载html是从上到下进行加载的,如果将js代码编写在head标签中,这样就会首先加载js代码,然后在js中获取id为banner的元素,但由于html的下面的标签还没有被浏览器加载到,所以会报错,获取为空。
而如老师一样将js的代码编写在body结束标签上面,则就可以避免 js 代码操作 HTML 元素时,HTML 元素还未载入而失效的问题。如:

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
2. 从网页搭建入门JavaWeb
- 参与学习 人
- 提交作业 676 份
- 解答问题 9666 个
本阶段将从前端网页搭建入手,到Java Web基础,前后端结合助你完成Java Web小白的蜕变!
了解课程

恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星