JS简单实现动态生成表格

效果图:

原理:

主要是根据已有数据,利用 document.createElement 生成元素,并用 node.appendChild(child)添加到DOM中。这些操作还是比较简单的,反而觉得是table相关标签之间的关系有点绕。

代码:

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 使用style修改样式 -->
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        .clearfix:after {
            visibility: hidden;
            clear: both;
            display: block;
            content: ".";
            height: 0
        }

        .clearfix {
            *zoom: 1
        }

        a {
            color: black;
            text-decoration: none;
        }

        ul {
            list-style: none;
        }

        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>
        <thead>
            <tr>
                <th>姓名</th>
                <th>科目</th>
                <th>成绩</th>
                <th>操作</th>
            </tr>
        </thead>
        <tbody>
        </tbody>
    </table>
    <script>
        var data = [{
                name: '魏璎珞',
                subject: 'JavaScript',
                score: 100
            },
            {
                name: '弘历',
                subject: 'JavaScript',
                score: 98
            },
            {
                name: '傅恒',
                subject: 'JavaScript',
                score: 99
            },
            {
                name: '明玉',
                subject: 'JavaScript',
                score: 88
            }
        ]
        var tbody = document.querySelector('tbody');
        for (var i = 0; i < data.length; i++) {
            var tr = document.createElement('tr');
            for (var j in data[i]) {
                var td = document.createElement('td');
                td.innerHTML = data[i][j];
                tr.appendChild(td);
            }
            var td = document.createElement('td');
            td.innerHTML = '<a href="javaScript:;">删除</a>';
            tr.appendChild(td);
            tbody.appendChild(tr);
        }
        var alist = document.querySelectorAll('a');
        for (var j = 0; j < alist.length; j++) {
            alist[j].onclick = function () {
                tbody.removeChild(this.parentNode.parentNode);
            }
        }
    </script>
</body>

</html>

猜你喜欢

转载自blog.csdn.net/weixin_42207975/article/details/106492162
今日推荐