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

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 在不同的执行界面调用同一个页面
  • ¥20 基于51单片机的数字频率计
  • ¥50 M3T长焦相机如何标定以及正射影像拼接问题
  • ¥15 keepalived的虚拟VIP地址 ping -s 发包测试,只能通过1472字节以下的数据包(相关搜索:静态路由)
  • ¥20 关于#stm32#的问题:STM32串口发送问题,偶校验(even),发送5A 41 FB 20.烧录程序后发现串口助手读到的是5A 41 7B A0
  • ¥15 C++map释放不掉
  • ¥15 Mabatis查询数据
  • ¥15 想知道lingo目标函数中求和公式上标是变量情况如何求解
  • ¥15 关于E22-400T22S的LORA模块的通信问题
  • ¥15 求用二阶有源低通滤波将3khz方波转为正弦波的电路