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

无法显示JSON数组数据求助:HTML表格渲染及$.each调用问题

别着急,我帮你捋捋这个问题!从你给出的JSON结构来看,这是一个标准的对象数组,用$.each来遍历是完全可行的,大概率是数据调用或者DOM拼接的环节出了小问题。我给你一步步拆解解决方案:

第一步:先确认数据是否正确获取

很多时候问题出在“没拿到正确的数据”上,先别急着渲染表格,先验证数据:

// 假设你通过AJAX接口获取数据
$.getJSON('你的数据接口地址', function(data) {
  // 打开浏览器控制台(F12),看看打印出来的是不是预期的数组
  console.log('拿到的数据:', data);
  
  // 先判断数据类型是否正确
  if (Array.isArray(data)) {
    // 数据没问题,再执行渲染逻辑
    renderTable(data);
  } else {
    console.error('警告:拿到的数据不是数组,请检查接口返回!');
  }
})
.fail(function() {
  console.error('请求失败了!可能是接口地址错了或者跨域问题');
});

第二步:正确的表格渲染逻辑

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

<table id="scoreTable" border="1" cellpadding="8">
  <thead>
    <tr>
      <th>ID</th>
      <th>用户ID</th>
      <th>昵称</th>
      <th>排名</th>
      <th>平台</th>
      <th>分数</th>
    </tr>
  </thead>
  <tbody id="tableBody">
    <!-- 动态渲染的行会插入这里 -->
  </tbody>
</table>

然后写渲染函数,用$.each遍历数组拼接表格行:

function renderTable(data) {
  // 先清空tbody,避免重复渲染
  $('#tableBody').empty();
  
  $.each(data, function(index, item) {
    // 拼接每一行的HTML,注意转义特殊字符(如果有的话)
    let tableRow = `<tr>
      <td>${item.id}</td>
      <td>${item.userid}</td>
      <td>${item.name}</td>
      <td>${item.placement}</td>
      <td>${item.platform}</td>
      <td>${item.value.toFixed(2)}</td> <!-- 分数保留两位小数,可选 -->
    </tr>`;
    
    // 把行添加到tbody中
    $('#tableBody').append(tableRow);
  });
}

可能踩的坑点

  • 选择器写错:比如把#tableBody写成了tableBody,导致找不到DOM元素,行插不进去
  • JSON格式错误:如果接口返回的不是合法JSON,$.getJSON会直接失败,一定要看Network面板里的接口返回内容
  • 跨域问题:如果你的前端页面和数据接口不在同一个域名下,会触发跨域拦截,需要后端配置CORS或者用代理

测试用完整示例(模拟数据)

如果暂时不想用接口,可以直接用你给出的JSON数据做测试:

$(document).ready(function() {
  // 模拟你拿到的JSON数组
  let mockData = [
    { 
      "id": "8ef2d135-73a3-4a58-8858-733f3882290a", 
      "userid": "8ef2d135-73a3-4a58-8858-733f3882290a", 
      "name": "MN-Carven", 
      "placement": 1, 
      "platform": "PC", 
      "value": 66.29059172668 
    },
    { 
      "id": "b5af3e4f-8c43-48e4-8d04-e8adf0ae9808", 
      "userid": "b5af3e4f-8c43-48e4-8d04-e8adf0ae9808", 
      "name": "TestPlayer", 
      "placement": 2, 
      "platform": "PS5", 
      "value": 58.76 
    }
  ];
  
  renderTable(mockData);
});

如果还是不行,一定要打开浏览器的开发者工具看Console面板的报错信息,那是排查问题的关键!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:08:18