JS动态生成表格案例

本文将介绍如何利用JavaScript在网页中动态生成表格,通过实例展示代码实现过程,帮助理解DOM操作技巧。
摘要由CSDN通过智能技术生成

JS动态生成表格案例

<!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>
            table {
                width: 500px;
                margin: 100px auto;
                border-collapse: collapse;
                text-align: center;
            }

            td,
            th {
                border: 1px solid #333;
            }

            thead tr {
                height: 40px;
                background-color: #ccc;
            }
        </style>
    </head>
    <body>
        <table cellspacing="0">
            <thead>
                <tr>
                    <th>姓名</th>
                    <th>科目</th>
                    <th>成绩</th>
                    <th>操作</th>
                </tr>
            </thead>
            <tbody></tbody>
        </table>
        <script>
            // 学生数据
            var dates = [
                {
                    name: '鹿乃',
                    subject: 'javascript',
                    score: 520,
                },
                {
                    name: '花丸',
                    subject: 'javascript',
                    score: 100,
                },
                {
                    name: '小东',
                    subject: 'javascript',
                    score: 98,
                },
                {
                    name: 'ののの',
                    subject: 'javascript',
                    score: 99,
                },
                {
                	name: '小鹿包',
                    subject: 'javascript',
                    score: 5120,
                }
            ];
            var tbody = document.querySelector('tbody');
            // 1. 在 tbody 内创建行,每一行存放一个对象,共 dates.length 行。
            for (var i = 0; i < dates.length; i++) {
                var tr = document.createElement('tr');
                tbody.appendChild(tr);
                // 2. 在行内创建单元格 每行单元格数量等于一个对象属性数量
                // 第二层for循环后 k得到的是属性名,dates[i][k]得到的是属性值
                for (var k in dates[i]) {
                    // 循环的次数为属性个数
                    var td = document.createElement('td'); // 创建单元格
                    tr.appendChild(td); // 添加单元格
                    td.innerHTML = dates[i][k]; // 将属性值存进单元格 
                    // 开始不明白怎么保证的每个属性值都赋值给新的td ,最后我认为是将第i行k列的属性值 放进了 第i行k列的td中,每个td都是与接收的属性值对应的。
                }
                // 3. 创建独立的 删除功能单元格
                var td = document.createElement('td');
                tr.appendChild(td);
                td.innerHTML = '<a href="javascript:;">删除</a>'
            }
            // 4. 表格创建完毕 开始实现删除功能
            // 点击删除 需要删除的是 行tr  tr为tbody子元素 需要获取tbody
            var tbody = document.querySelector('tbody');
            // 获取执行删除的a
            var as = document.querySelectorAll('a');
            for (var i = 0; i < as.length; i++) {
                as[i].onclick = function() {
                	// this.parentNode.parentNode 指的就是 tr
                    tbody.removeChild(this.parentNode.parentNode); 
                }
            }
        </script>
    </body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值