You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何JavaScript无法找到元素?我的div被返回null的技术问询

为什么我的JavaScript提示div为null?

这问题我刚学JS的时候也踩过一模一样的坑!核心原因是你的脚本在页面DOM元素还没加载完成的时候就执行了。

看你的HTML结构:<script src="java.js"></script>放在了<body>的最开头,浏览器是从上到下解析HTML的,当它执行这个脚本时,下面的<div id="box">50%</div>还没被渲染到DOM树里呢,document.getElementById("box")自然找不到元素,返回null,这时候你去访问box.style就会抛出"Cannot read properties of null"的错误。

给你几个靠谱的解决方案:

  • 把脚本移到body末尾(最简单直接的方法)
    把<script>标签放到</body>标签之前,这样当脚本执行时,页面上所有DOM元素都已经加载完毕了:

    <html>
    <head>
    <link rel="stylesheet" type="text/css" href="classStyle.css">
    </head>
    <body onmousemove="search()">
    <center>
    <div id="header">Fantasy class</div>
    <div id="box">50%</div>
    <div type="button"> יצירת ליגה</div>
    </center>
    <script src="java.js"></script>
    </body>
    </html>
    
  • 监听DOMContentLoaded事件
    修改你的java.js代码,让逻辑在DOM加载完成后再执行:

    document.addEventListener('DOMContentLoaded', function() {
      var box = document.getElementById("box");
      box.style.height = box.innerText;
    });
    
  • 给script标签加defer属性
    这个属性会让脚本在DOM解析完成后才执行,同时不会阻塞页面的渲染:

    <script src="java.js" defer></script>
    

另外提个小细节:你写的<div type=buttom>应该是<div type="button">吧?虽然这和当前的null问题无关,但规范的写法能避免后续其他小问题~

内容的提问来源于stack exchange,提问作者דין ודברים

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:04:34