美文网首页
JavaScript之动态生成表格

JavaScript之动态生成表格

作者: 李寻欢_ | 来源:发表于2019-06-04 21:07 被阅读0次

    整体思路:
    1.将每一行的数据作为一个对象,然后将这些对象封装在一个数组中;
    2、添加行tr,利用for循环(i的数量与数组的长度有关);
    3、内层for循环,创建每一行中的所有单元格td,单元格td的数量与对象中的属性个数有关,故用for...in...遍历对象即可
    4、在每一行的最后,添加一个td,内容为a标签‘删除’;
    5、最后给表格添加一个点击‘删除’后就删除整行的事件
    以上,整个表格就创建完成了


    <!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>
            // 1.将每一行的数据作为一个对象,然后将这些对象封装在一个数组中(没有后台服务器的情况下,暂时采用这种方式添加)
            var datas = [{
                    name: '李寻欢',
                    subject: 'javascript',
                    scores: 100
                }, {
                    name: '周杰伦',
                    subject: 'javascript',
                    scores: 99
                }, {
                    name: '陈奕迅',
                    subject: 'javascript',
                    scores: 98
                }, {
                    name: '昼夜',
                    subject: 'javascript',
                    scores: 97
                }, {
                    name: '柯南',
                    subject: 'javascript',
                    scores: 100
                }]
                // 2、添加行tr,利用for循环(i的数量与数组的长度有关)
                // 获取元素
            var tbody = document.querySelector('tbody');
    
            for (var i = 0; i < datas.length; i++) {
                //创建行tr
                var tr = document.createElement('tr');
                //将新创建的行tr添加给tbody
                tbody.appendChild(tr);
                // 3、内层for循环,创建每一行中的所有单元格td,单元格td的数量与对象中的属性多少有关,故用for...in...
                for (var k in datas[i]) {
                    // 创建td元素
                    var td = document.createElement('td');
                    // 将每个对象中的属性值传给td
                    td.innerHTML = datas[i][k];
                    //给tr添加td子元素
                    tr.appendChild(td);
                }
                //4、在每一行的最后,添加一个td,内容为a标签‘删除’
                // 创建td新元素
                var td = document.createElement('td');
                //把a标签的‘删除’传给td
                td.innerHTML = "<a href='javascript:;'>删除</ a>";
                // 给tr添加上td
                tr.appendChild(td);
            }
    
            //以上,整个表格就创建完成了
            // 5、下面给表格添加点击‘删除’,就删除整行的事件
            // 获取元素
            var as = document.querySelectorAll('a');
            // 添加事件
            for (var i = 0; i < as.length; i++) {
                as[i].onclick = function() {
                    tbody.removeChild(this.parentNode.parentNode);
                }
            }
        </script>
    </body>
    
    </html>
    


    打开浏览器后,效果如图1:
    动态生成表格效果图-1.png
    点击删除任意一行,效果如图2,3,4
    动态生成表格效果图-2.png
    动态生成表格效果图-3.png
    动态生成表格效果图-4.png

    相关文章

      网友评论

          本文标题:JavaScript之动态生成表格

          本文链接:https://www.haomeiwen.com/subject/mczrxctx.html