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

JavaScript实现FizzBuzz时数组结果无法在HTML页面显示求助

问题原因
  • 脚本执行时机错误:你将JS文件在head标签中引入,脚本执行时页面body还未完成渲染,document.getElementById("output")无法获取到对应DOM元素,返回值为null,后续操作自然无效。
  • DOM操作语法错误:document.getElementById()返回的是DOM元素对象,不能直接给这个对象赋值来修改显示内容,需要操作它的内容属性(常用的有textContent/innerHTML)。
错误写法说明

你尝试的三种写法均不满足DOM操作规范:

  • 前两种写法都是直接给DOM元素对象赋值,不属于修改元素显示内容的正确语法
  • 第三种写法缺少要调用的属性/方法名,属于基础语法错误
修正方案

第一步:调整脚本加载时机

两种方案二选一即可:

  1. 将HTML中引入JS的<script>标签移动到</body>闭合标签之前,保证DOM元素渲染完成后再执行脚本,修正后的HTML代码如下:
<!DOCTYPE html>
<html>
    <head>
        <title>Fizz Buzz Challenge</title>
    </head>
    <body>
        <h2>The Fizz Buzz Test:</h2>
        <div id = "output"> </div>
        <script src="fizzBuzz.js" charset="utf-8"></script>
    </body>
</html>
  1. 保留script在head中,添加defer属性,浏览器会自动等待DOM加载完成后再执行该脚本:
<script src="fizzBuzz.js" charset="utf-8" defer></script>

第二步:修正JS中的DOM操作代码

将JS文件最后一行的赋值代码替换为以下内容即可正常显示结果:

// 逗号分隔平铺展示
document.getElementById("output").textContent = result.join(', ');

如果需要每个结果单独换行展示,可使用以下写法:

document.getElementById("output").innerHTML = result.join('<br>');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:57:04