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

求助:使用document.write在JavaScript中添加表格的代码问题

解决document.write生成表格的页面空白问题

别担心,我来帮你搞定这个讲师要求的任务!页面空白大概率是因为几个常见的小问题:要么没正确调用函数,要么表格标签没写全,要么makeListItem的返回格式不对。我直接给你写好完整的可运行代码,再拆解关键点:

首先看完整的可执行代码:

// 示例英雄和反派数组,你可以替换成自己的数据集
const heroes = ["Superman", "Batman", "Wonder Woman"];
const villains = ["Lex Luthor", "Joker", "Cheetah"];

// 修改后的makeListItem函数,返回指定格式的表格行字符串
function makeListItem(heroName, villainName) {
  // 用模板字符串拼接,避免引号嵌套的语法错误
  return `<tr><td>${heroName}</td><td>${villainName}</td></tr>`;
}

// 完善后的writeIt函数,处理表格的首尾标签和遍历逻辑
function writeIt() {
  // 先写入表格开始标签,加border是为了直观看到表格(不加的话默认无边框,容易误以为没显示)
  document.write('<table border="1">');
  
  // 可选:添加表头让表格更清晰(讲师没强制要求,但提升可读性)
  document.write('<tr><th>Hero</th><th>Villain</th></tr>');
  
  // 遍历数组,一一对应英雄和反派生成表格行
  for (let i = 0; i < heroes.length; i++) {
    // 调用makeListItem获取行HTML,写入页面
    document.write(makeListItem(heroes[i], villains[i]));
  }
  
  // 最后写入表格闭合标签,这一步绝对不能省略!
  document.write('</table>');
}

// 关键:必须调用writeIt函数,不然代码只会定义不会执行,页面自然空白
writeIt();

你之前可能踩的坑:

  1. 忘记调用writeIt()函数:很多人写完函数就忽略了调用步骤,代码根本没执行,页面当然啥都没有。
  2. makeListItem格式错误:比如用单引号嵌套单引号时没转义(虽然用字符串拼接也能实现,但模板字符串更不容易出错),或者没正确接收英雄和反派的参数。
  3. 表格标签不完整:只写了<table>开始标签却没写</table>闭合标签,浏览器无法正确识别表格结构,导致渲染失败。
  4. 数组长度不匹配:如果heroes和villains的长度不一样,可能会出现undefined内容,但不会导致完全空白,你可以检查下自己的数组数据。

把代码替换成这样,页面就能正常显示英雄和反派的对应表格啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:01:41