请问老师,我为什么会报错

请问老师,我为什么会报错

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>图片轮播</title>
	<link rel="stylesheet" type="text/css" href="css/index.css">
	<script type="text/javascript" src="js/index.js"></script>
</head>
<body>
	<div class="main">
		<div class="banner" id="banner">
			<a href="">
				<div class="banner-slide slide1 slide-active"></div>
			</a>
			<a href="">
				<div class="banner-slide slide2"></div>
			</a>
			<a href="">
				<div class="banner-slide slide3"></div>
			</a>
		</div>
		<div class="button left"></div>
		<div class="button right"></div>
		<div class="dots">
			<span class="dots-active"></span>
			<span></span>
			<span></span>
		</div>
	</div>
</body>
</html>
var banner=document.getElementById("banner");
var arrayDiv=banner.getElementsByTagName("div");
alert(arrayDiv.length);
/*切换图片*/
function changeImg(){
}

http://img1.sycdn.imooc.com//climg/5f1cf78409931e1906820108.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,如果放在head中,加载html页面时会先加载到js代码,页面没有加载完,使用到页面中的标签会报错;像同学所说的,可以使用自定义函数的方法,暂时没有其他方法

祝学习愉快

好帮手慕阿园 2020-07-26 14:45:23

同学你好,因为js放在head中,在加载js时html还没有加载完,所以获取不到html中的元素。所以需要将js放在html加载完之后引入,也就是放在html的尾部引入

参考如下

http://img1.sycdn.imooc.com//climg/5f1d2671090cbb8508900177.jpg

祝学习愉快

  • 提问者 森林sng #1
    请问老师,如果我想要将放在head里,毕竟放在这儿规范好找易于维护,那么是不是需要将js中的获取元素的全局变量放在函数中,然后在html中的对应位置加上onclick事件。还有其他方法吗?
    2020-07-26 16:59:35
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师