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

JS引入HTML运行异常:check函数为void、submit对象为null,Codepen正常本地失效

问题根因
  • 你将外部JS文件放在了<head>标签内引入,JS代码执行时页面<body>内的DOM元素还未完成渲染,所以document.getElementById("submit")无法找到对应元素,返回null,后续绑定点击事件的操作自然无法执行,这就是你控制台报错的核心原因。
  • Codepen平台默认会将用户编写的JS代码放在页面DOM加载完成后执行,所以同一份代码在Codepen中可以正常运行。
解决方案(任选其一即可)
  1. 调整脚本引入位置
    将<script src="5000.js"></script>从<head>内移动到</body>结束标签之前,修改后HTML的结构如下:
<!-- 其余body内代码保持不变 -->
  </div>
  <script src="5000.js"></script>
</body>
</html>
  1. 给脚本添加defer属性
    不需要移动脚本位置,直接修改head内的script标签,添加defer属性即可让脚本等待DOM解析完成后再执行:
<script src="5000.js" defer></script>
  1. JS代码包裹DOM加载完成监听事件
    将你现有所有JS代码包裹在DOMContentLoaded事件回调中,确保DOM加载完成后才执行节点获取、事件绑定逻辑:
document.addEventListener('DOMContentLoaded', function() {
  // 你现有的所有JS代码放在此处
})
其他优化建议
  • 代码中以0开头的数字字面量(如081、06)会被JS引擎识别为八进制数,可能出现非预期的解析结果,建议改为字符串格式或者去掉前导零。
  • 现有循环判断逻辑中你固定了循环次数为18,但大部分中奖数组的长度远小于18,访问数组不存在的下标会得到undefined,建议改为遍历每个数组本身的长度进行判断,逻辑更严谨。

内容的提问来源于stack exchange,提问作者Joe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:36:08