为什么将<script></script>引用语句放在head中 调用函数时显示为null

为什么将<script></script>引用语句放在head中 调用函数时显示为null

<!DOCTYPE html>
<html>
<head>
 <title>gundong</title>
 <link rel="stylesheet" type="text/css" href="css/html.css">
  <script type="text/javascript" src="js/js.js"></script>
</head>
<body>
 <div class="main" id="main">
  <div class="banner" >
   <a href="">
       <div class="banner-i solid1 active"></div>
   </a>
   <a href="">
    <div class="banner-i solid2"></div>
   </a>
   <a href="">
    
   <div class="banner-i solid3"></div>
   </a>
  </div>
  <!-- 按钮 -->
  <a href="javascript:void(0)" class="button left"></a>
  <a href="javascript:void(0)" class="button right"></a>
  <!-- 下面是点 -->
  <div class="dots">
   <span class="dotss"></span>
   <span class=""></span>
            <span class=""></span>
         </div>
     </div>
    
</body>
</html>

function byId(id){
 return typeof(id) === "string"?document.getElementById(id):id;
}
console.log(byId("main"));

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

正在回答

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

1回答

同学你好!

建议你将<script type="text/javascript" src="js/script.js"></script>放在body的尾部,原因:

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

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

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

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


  • 慕沐0220913 提问者 #1
    那请问如何判断何时放body何时放head还是说优先body
    2019-12-13 18:46:40
  • 好帮手慕柯南 回复 提问者 慕沐0220913 #2
    同学,如果加载js就需要从html中获取某个元素的信息,此时就可以放在body尾部,如果页面触发了某个事件此时js才需要加载页面的某个运算,就可以放在head中。没有优先的问题,不影响程序执行的情况下,放哪里都是可以。祝学习愉快~
    2019-12-13 19:00:40
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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