为什么在这个<script></script>head里面代码就不能运行了

为什么在这个<script></script>head里面代码就不能运行了

<html>
<head>
	<meta charset="utf-8">
	<title></title>
	<script type="text/javascript" src="lunbo.js"></script>
	<link rel="stylesheet" type="text/css" href="lunbo.css">
</head>
<body>
	<div class="main" id="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>
	<!--上一个,下一个按钮-->
	
		<a href="javascript:void(0)" class="button prev"></a>
		<a href="javascript:void(0)" class="button next"></a>
	<!--圆点导航-->
	<div class="docs">
	<span class="active"></span>
	<span></span>
	<span></span>
	</div>


	<!--主菜单-->
	<div class="menu">
		
	</div>
</div>

</body>
</html>

function byId(id){

return typeof(id) === "string"?document.getElementById(id):id;

}

console.log(byId("main"));



正在回答 回答被采纳积分+1

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

2回答
好帮手慕柯南 2020-02-02 14:22:34

同学你好!

  1. 放在body中可以避免这个问题,不过不影响程序运行的时候,放在哪里都是可以的。另外

  2. 不能说是body的范围比head大,是html的加载时从上而下导致的。加载至head处时,html的结构还没有加载,但是加载到hody的尾部是,html基本就加载完了。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~


好帮手慕柯南 2020-02-01 18:50:42

同学你好!

这与html文件的执行顺序有关,html是至上而下执行的

  1. 在head中导入js:在加载js时有些值会进行初始化,但此时html中的标签元素还没有加载完,因此便获取不到。

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

  2. 将js放在body的尾部:在加载js时html的标签元素已经加载完,因此可以正常显示。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~


  • 提问者 怀夢 #1
    那以后尽量还是用在body里面执行呗?可以理解为在body里面执行的范围大于head里面吗
    2020-02-01 21:43:43
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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