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

如何遍历JSON对象生成HTML表格的tr与td标签?

用JSON数据填充HTML表格的实现方法

首先准备好基础的HTML表格结构:

<table id="userTable">
  <thead>
    <tr>
      <th>姓名</th>
      <th>邮箱</th>
      <th>状态</th>
      <th>锁定次数</th>
      <th>最后登录时间</th>
    </tr>
  </thead>
  <tbody id="tableBody">
    <!-- 动态生成的行将插入此处 -->
  </tbody>
</table>

前提说明

如果你的数据是JSON字符串格式(比如从后端获取的响应),需要先通过JSON.parse()转换成JavaScript对象数组;如果已经是对象数组(比如示例中的users变量),可以直接使用。


方法一:原生JavaScript(基础DOM操作)

适合新手理解每一步的元素创建逻辑:

// 若数据是JSON字符串,先解析:
// const users = JSON.parse('[{"fullname":"Bob Wirth","email":"Bob @mydomain.com",...}]');

const tableBody = document.getElementById('tableBody');

// 遍历每个用户对象
users.forEach(user => {
  // 创建表格行
  const row = document.createElement('tr');

  // 逐个创建单元格并填充内容
  const nameCell = document.createElement('td');
  nameCell.textContent = user.fullname;
  row.appendChild(nameCell);

  const emailCell = document.createElement('td');
  emailCell.textContent = user.email;
  row.appendChild(emailCell);

  const statusCell = document.createElement('td');
  statusCell.textContent = user.status;
  row.appendChild(statusCell);

  const lockCell = document.createElement('td');
  lockCell.textContent = user.lockcnt;
  row.appendChild(lockCell);

  const loginCell = document.createElement('td');
  loginCell.textContent = user.lastlogin;
  row.appendChild(loginCell);

  // 将行添加到表格主体
  tableBody.appendChild(row);
});

方法二:原生JavaScript(模板字符串,更简洁)

用模板字符串拼接HTML,代码更紧凑,批量插入DOM性能更优:

const tableBody = document.getElementById('tableBody');
let rowsHtml = '';

users.forEach(user => {
  rowsHtml += `
    <tr>
      <td>${user.fullname}</td>
      <td>${user.email}</td>
      <td>${user.status}</td>
      <td>${user.lockcnt}</td>
      <td>${user.lastlogin}</td>
    </tr>
  `;
});

// 一次性插入所有生成的行
tableBody.innerHTML = rowsHtml;

额外提示

  • 若用户对象存在属性缺失的情况,可以添加默认值处理,比如${user.fullname || '-'},避免单元格为空。
  • 确保遍历的属性顺序和表头列顺序一致,防止内容错位。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 10:42:37