m0_46602893 2021-04-14 21:53 采纳率: 91.5%
浏览 88
已结题

js问题,script和body的执行顺序问题?

<!DOCTYPE html>
<html lang="en">
<head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
      <style>
            #box{border: 1px solid black;width:300px; height: 300px;}
      </style>
      <script>
            alert(document.getElementById("box").innerHTML);
      </script>
</head>
<body>
      <div id="box">123456</div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
      <style>
            #box{
                  width: 300px;
                  height: 300px;
                  background: blueviolet;
                  color: black;
            }
      </style>
      <script>
                  function btn(){
                        var arr = [/靠/ig, /cnm/ig, /tmd/ig];
                        var stext = document.getElementById("text");
                        var sbox = document.getElementById("box");
                        var scc = stext.value;
                        for(i = 0; i < arr.length; i++){
                                  scc  = scc.replace(arr[i], "*");
                        }
                        console.log("sbox",sbox);
                        sbox.innerHTML = scc;
                        stext.value = "";
                  }
      </script>
</head>
<body>
      <textarea name="" id="text" cols="30" rows="10"></textarea>
      <button onclick="btn()">点击刷新</button>
      <div id="box"></div>
</body>
</html>

问题:上下两端代码都是js加css内容,代码同样是由上至下执行,为什么第一段代码console不出来,而第二段代码可以?

执行顺序应该都一样啊

  • 写回答

2条回答 默认 最新

  • hfhan_872914334 2021-04-15 12:56
    关注

    可以看下html的解析过程,head中的js执行的时候,body中的元素还没有加入dom树,所以找不到box,继而抛出错误

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月4日
  • 已采纳回答 8月27日

悬赏问题

  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程