瘪枸杞 2021-04-28 13:21 采纳率: 100%
浏览 75
已采纳

JavaScript新手,想问一下这个玄学document.getElementById

代码很简单

scritp部分是这样:

<script>
            var a =Math.random()*(4-1)+1;
            document.getElementById("number").innerText = Math.floor(a);
</script>

body 部分是这样:

<body>
        <div>
            <span id="number"></span>
        </div>
    </body>

可结果老是这样:

我实在理解不了为什么

  • 写回答

5条回答 默认 最新

  • 上官熊猫 2021-04-28 13:29
    关注

    和代码的加载顺序有关,放在头部获取的值是null,需要将script标签放在body里面

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge,chrome=1" />
        <meta name="renderer" content="webkit" />
        <meta name="keywords" content="" />
        <meta name="description" content="" />
        <title>Document</title>
      </head>
      <body>
        <div><span id="number">123</span></div>
        <script>
          document.getElementById('number').innerHTML = '新的内容';
        </script>
      </body>
    </html>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分