动态生成表格案例

本文介绍如何借助JavaScript和ElementUI库在前端实现动态表格的生成。通过实例解析了如何动态添加、删除行以及处理表格数据的方法,适合前端开发者参考学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 <style>
        table {
            width: 500px;
            margin: 100px auto;
            text-align: center;
            /* 使边框的重叠部分不重叠 */
            border-collapse: collapse;
        }

        th,
        td {
            border: 1px solid #333;
        }
    </style>
</head>

<body>
    <!-- cellspacing='0' 使单元格之间的距离为0 -->
    <table cellspacing='0'>
        <thead>
            <tr>
                <th>姓名</th>
                <th>科目</th>
                <th>成绩</th>
                <th>操作</th>
            </tr>
        </thead>
        <tbody>

        </tbody>
        <script>
            // 1. 先准备好学生的数据,利用数组的形式放在一起 (创建对象)
            var datas = [{
                name: '魏璎珞',
                object: 'JavaScript',
                score: 100,
            }, {
                name: '弘历',
                object: 'JavaScript',
                score: 99,
            }, {
                name: '傅恒',
                object: 'JavaScript',
                score: 98,
            }, {
                name: '明玉',
                object: 'JavaScript',
                score: 98,
            }]
            // 2. 往tbody里面创建行,有几个人(通过数组的长度)就创建几行
            var tbody = document.querySelector('tbody');
            for (var i = 0; i < datas.length; i++) {  //外面的for循环管行
                // (1)创建行 tr
                var tr = document.createElement('tr');
                tbody.appendChild(tr);
                // (2))行里面创建单元格(跟数据有关系的三个单元格) 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);
                }
                // (3)创建最后一个删除单元格
                var td = document.createElement('td');
                tr.appendChild(td);
                td.innerHTML = '<a href="JavaScript:;">删除</a>'
            }
            // 删除操作
            var as = document.querySelectorAll('a');
            for (var i = 0; i < as.length; i++) {
                as[i].onclick = function () {
                    // 点击a 删除当前所在的行
                    tbody.removeChild(this.parentNode.parentNode)
                }
            }


            // for(var k in obj){  //遍历对象
            //     k得到的是属性名
            //     obj[k]得到的是属性值  // obj就是datas[i]
            // }

        </script>
    </table>
</body>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值