js动态生成table表格,加滚动条

效果 :

 

 代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
/* 表格容器样式,用flex布局可保证table内容能铺满剩余空间 */
.tbl-container {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
}

/* 设置表格的布局方式,用于宽度对齐 */
.tbl-header table{
  border-bottom: none;
  border-bottom-style: none;
  table-layout: fixed;
}

.tbl-body table {
  table-layout: fixed;
}

/* 设置表格内容容器,用于铺满整个剩余空间 */

.tbl-header {
  padding-right: 17px;
}

.tbl-body {
  height: 160px;
  overflow-y: scroll;
}
 table {
            border-collapse: collapse;
        }
        table th{
            width: 80px;
            height: 25px;
            text-align: center;
            background-color: cornsilk;
        }

        table td{
            width: 80px;
            height: 25px;
            text-align: center;

        }

</style>
</head>

<body>



<!-- 表格容器,可用于设置整个的边框及高度 -->
  <div class="tbl-container">
  <!-- 表头容器,必须留出17px的滚动条位置 -->   
    <div class="tbl-header">
      <table>
        <thead>
          <tr>
            <th >排名</th>
            <th >业务员</th>
            <th >金额</th>
			<th >订单</th>
			<th >客户</th>
          </tr>
        </thead>
      </table>
    </div>
    <!-- 表格内容容器-->
    <div class="tbl-body">
      <table >
      <tbody>
        
      </tbody>
      </table>
    </div>
  </div>
<script>
        // 1.先去准备好学生的数据
        var datas = [{
            name1: '小明',
            subject1: '1',
			name: '小明',
            subject: '1',
            score: 100
        }, {
            name1: '小新',
            subject1: '1',
			name: '小明',
            subject: '1',
            score: 98
        }, {
            name1: '小夏',
            subject1: '1',
			name: '小明',
            subject: '1',
            score: 99
        }, {
            name1: '小玉',
            subject1: '1',
			name: '小明',
            subject: '1',
            score: 88
        }, {
            name1: '小猪',
            subject1: '1',
			name: '小明',
            subject: '1',
            score: 0
        },{
            name1: '小明',
            subject1: '1',
			name: '小明',
            subject: '1',
            score: 100
        }, {
            name1: '小新',
            subject1: '1',
			name: '小明',
            subject: '1',
            score: 98
        }, {
            name1: '小夏',
            subject1: '1',
			name: '小明',
            subject: '1',
            score: 99
        }, {
            name1: '小玉',
            subject1: '1',
			name: '小明',
            subject: '1',
            score: 88
        }, {
            name1: '小猪',
            subject1: '1',
			name: '小明',
            subject: '1',
            score: 0
        }];
        // 2. 往tbody 里面创建行: 有几个人(通过数组的长度)我们就创建几行

        var tbody = document.querySelector('tbody');

        for (var i = 0; i < datas.length; i++) { // 外面的for循环管行 tr
            // 1. 创建 tr行
            var tr = document.createElement('tr');
            tbody.appendChild(tr);
            // 2. 行里面创建单元格(跟数据有关系的3个单元格) td 单元格的数量取决于每个对象里面的属性个数  for循环遍历对象 datas[i]
            for (var k in datas[i]) { // 里面的for循环管列 td
                // 创建单元格 
                var td = document.createElement('td');
                // 把对象里面的属性值 datas[i][k] 给 td  
                // console.log(datas[i][k]);
                td.innerHTML = datas[i][k];
                tr.appendChild(td);
            }
         
        }
        
    </script>
	</body>

</html>


  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 JavaScript 中的 DOM 操作来动态生成表格。以下是一个示例代码: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>动态生成表格</title> </head> <body> <button onclick="createTable()">生成表格</button> <div id="tableContainer"></div> <script> // 创建表格 function createTable() { // 获取容器元素 let container = document.getElementById("tableContainer"); // 创建 table 元素 let table = document.createElement("table"); // 创建表头 let headerRow = document.createElement("tr"); let header1 = document.createElement("th"); let header2 = document.createElement("th"); header1.innerHTML = "姓名"; header2.innerHTML = "年龄"; headerRow.appendChild(header1); headerRow.appendChild(header2); table.appendChild(headerRow); // 创建数据行 let dataRow1 = document.createElement("tr"); let data1_1 = document.createElement("td"); let data1_2 = document.createElement("td"); data1_1.innerHTML = "张三"; data1_2.innerHTML = "20"; dataRow1.appendChild(data1_1); dataRow1.appendChild(data1_2); table.appendChild(dataRow1); let dataRow2 = document.createElement("tr"); let data2_1 = document.createElement("td"); let data2_2 = document.createElement("td"); data2_1.innerHTML = "李四"; data2_2.innerHTML = "22"; dataRow2.appendChild(data2_1); dataRow2.appendChild(data2_2); table.appendChild(dataRow2); // 将表格到容器中 container.appendChild(table); } </script> </body> </html> ``` 这个示例中,当用户点击“生成表格”按钮时,`createTable` 函数会被调用。该函数首先获取一个容器元素(`<div>`),然后创建一个 `<table>` 元素。接着,函数创建表头和数据行,并将它们添表格中。最后,将表格到容器中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值