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

技术问询:遍历指定JSON数据并追加至目标HTML表格

实现方案:遍历JSON数据并追加到指定HTML表格

没问题,我来给你整理一个清晰的实现方案,帮你把JSON数据遍历后追加到指定的HTML表格里:

核心步骤

  • 先获取页面上ID为id_kbdata的表格元素
  • 遍历你的JSON数组,逐条处理数据
  • 为每条数据生成对应的表格行,把各个字段(ID、标题、业务领域、附件等)转换为表格单元格
  • 将生成的表格行追加到表格的<tbody>中(如果表格没有<tbody>,建议先创建,保证HTML结构规范)

完整代码示例(原生JavaScript)

// 假设你的JSON数据已获取完成,这里用你提供的示例数据
const kbData = [{ 
  "id":"3", 
  "title":"Doing Business In...", 
  "businessSubjectAreas":[
    { "businessSubjectArea":"Market and Sell Products/Service" }, 
    { "businessSubjectArea":"Deliver Products/Services" }, 
    { "businessSubjectArea":"HR" }, 
    { "businessSubjectArea":"Legal" }, 
    { "businessSubjectArea":"Finance" }, 
    { "businessSubjectArea":"Tax" }, 
    { "businessSubjectArea":"Treasury" }, 
    { "businessSubjectArea":"IT" }
  ],
  "attachmentFiles": [] // 这里根据你的实际附件结构补充,示例用空数组占位
}];

// 获取目标表格
const targetTable = document.getElementById('id_kbdata');

// 确保表格存在tbody元素,没有则创建
let tableBody = targetTable.querySelector('tbody');
if (!tableBody) {
  tableBody = document.createElement('tbody');
  targetTable.appendChild(tableBody);
}

// 遍历JSON数据,生成表格行
kbData.forEach(item => {
  // 创建新行
  const row = document.createElement('tr');

  // 1. 生成ID单元格
  const idCell = document.createElement('td');
  idCell.textContent = item.id;
  row.appendChild(idCell);

  // 2. 生成标题单元格
  const titleCell = document.createElement('td');
  titleCell.textContent = item.title;
  row.appendChild(titleCell);

  // 3. 生成业务领域单元格:把数组转为逗号分隔的字符串(也可以用换行/列表展示)
  const areasCell = document.createElement('td');
  const areaList = item.businessSubjectAreas.map(area => area.businessSubjectArea).join(', ');
  // 如果想要换行展示,替换成这行:areasCell.innerHTML = areaList.replace(/, /g, '<br>');
  areasCell.textContent = areaList;
  row.appendChild(areasCell);

  // 4. 生成附件单元格(根据实际结构调整,这里假设附件是带文件名的数组)
  const attachmentsCell = document.createElement('td');
  if (item.attachmentFiles && item.attachmentFiles.length > 0) {
    const fileNames = item.attachmentFiles.map(file => file.fileName || '未命名文件').join(', ');
    attachmentsCell.textContent = fileNames;
  } else {
    attachmentsCell.textContent = '无附件';
  }
  row.appendChild(attachmentsCell);

  // 将行追加到tbody
  tableBody.appendChild(row);
});

额外优化建议

  • 如果你的JSON数据是通过AJAX/fetch请求获取的,记得把这段代码放在请求成功的回调函数里,确保数据已经加载完成再处理
  • 可以给表格单元格添加CSS类名,方便后续样式调整,比如idCell.classList.add('table-id')
  • 如果需要表头,可以手动在HTML里添加,或者用JS动态生成:
// 动态生成表头(可选)
const tableHeader = document.createElement('thead');
const headerRow = document.createElement('tr');
['ID', '标题', '业务领域', '附件'].forEach(headerText => {
  const th = document.createElement('th');
  th.textContent = headerText;
  headerRow.appendChild(th);
});
tableHeader.appendChild(headerRow);
targetTable.insertBefore(tableHeader, tableBody);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:28:27