原生html table固定表头,后台返回一个数组对象有多个值,根据表头需要的字段显

原生table动态循环生成内容dom


原生html要实现固定表头并根据需要显示的字段渲染后端返回的数组对象,就需要使用JavaScript来渲染DOM。

HTML部分

html
<table id="data-table">
  <thead>
    <tr>
        <th>姓名</th>
        <th>状态</th>
        <th>开始时间</th>
        <th>结束时间</th>
        <th>是否开始</th>
    </tr>
  </thead>
  <tbody>
    <!-- 动态插入行 -->
  </tbody>
</table>

JavaScript部分

// 假设这是从后端获取的数据
var data = [
  { id: 1, name: 'Alice', status: '完成', startTime: '2024.1.11', endTime: '2024.1.12', isTimeout: '开始',contont:'测试' },
  { id: 2, name: 'Bob', status: '未完成', startTime: '2024.1.11', endTime: '2024.1.12', isTimeout: '开始',contont:'测试' },

  // 更多数据...
];

// 获取表格的tbody元素
var tbody = document.getElementById('data-table').getElementsByTagName('tbody')[0];

// 遍历数据数组,为每个对象创建一行
data.forEach(function(item) {
  var tr = document.createElement('tr');
  ['name', 'status', 'startTime','endTime','isTimeout'].forEach(function(field) {
    var td = document.createElement('td');
    td.textContent = item[field];
    tr.appendChild(td);
  });
  tbody.appendChild(tr);
});

Css部分

table {
  height: 100%;
  /* width: 100%; */
  border-collapse: collapse;
  /* color: white; */
  text-align: center;

  thead {
    font-size: 14px;
    font-weight: 400;
    /* color: #0CD6FF; */
  }

  tbody {
    display: block;
    /* height: 100%; */
    overflow-y: auto;
  }

  tr {
    display: table;
    width: 100%;
    table-layout: fixed;
    /* background: rgba(124, 182, 230, 0.1);
    border-bottom: 5px solid rgb(6, 19, 34); */
    min-height: 30px;
  }

  th, td {
    word-wrap: break-word;
    white-space: pre-wrap;
    vertical-align: middle;
    padding: 5px 0;
  }

  ::-webkit-scrollbar {
    width: 0;
    background-color: transparent;
  }
}

这段代码首先定义了一个表格,并在JavaScript中获取了它的元素。然后,它遍历了一个示例数据数组,为每个对象创建一个表格行,并且只根据表头需要的字段(name, status, startTime, endTime, isTimeout)插入数据。这样,即使数组中的对象有多个值,表格也只会显示所需的字段。

效果图

在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值