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

JSON数据在HTML表格中重复显示问题求助

解决JSON数据重复显示的问题

嘿,我来帮你搞定这个重复显示的问题!咱们先从最常见的原因入手,一步步排查和解决:

1. 最可能的原因:渲染前没清空容器

你每次获取到JSON数据后,是不是直接往#responsecontainer里追加内容,而没有先清空之前的内容?这会导致旧数据留在容器里,新数据又叠加上去,看起来就重复了。

解决办法很简单,在渲染新数据前先清空容器:

// 获取你的容器元素
const responseContainer = document.getElementById('responsecontainer');

// 渲染新数据前,先清空容器
responseContainer.innerHTML = '';

// 然后再渲染你的JSON数据(示例逻辑,可替换成你的代码)
const userData = { "userID": "1", "name": "Precious Tom", "email": "tomprezine@example.com", "password": "64a9f0ea7bb980502..." };
const tableHtml = `
  <table class="c-table">
    <thead>
      <tr>
        <th>用户ID</th>
        <th>姓名</th>
        <th>邮箱</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>${userData.userID}</td>
        <td>${userData.name}</td>
        <td>${userData.email}</td>
      </tr>
    </tbody>
  </table>
`;
responseContainer.innerHTML = tableHtml;

2. 检查数据源本身是否重复

如果清空容器后还是有重复,那可能是你获取到的JSON数据本身就存在重复项(比如接口返回了重复的用户数组)。你可以先打印数据确认:

console.log('获取到的原始数据:', yourRawData);

如果是数组类型的重复数据,可以用Set来做去重处理(以userID作为唯一标识):

// 假设yourRawData是包含多个用户对象的数组
const uniqueUsers = [...new Set(yourRawData.map(user => user.userID))]
  .map(id => yourRawData.find(user => user.userID === id));

// 然后用去重后的uniqueUsers来渲染

3. 避免重复调用渲染函数

有时候可能是你不小心多次触发了数据获取和渲染的逻辑(比如按钮点击事件绑定了多次)。你可以检查一下:

  • 是不是在window.onload或者其他初始化函数里重复注册了事件?
  • 是不是每次获取数据时都重新绑定了渲染逻辑?

如果是这种情况,确保事件只绑定一次,或者用防抖/节流来控制调用频率。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:36:45