js动态添加表格,全选和删除

效果图:



代码:

js动态添加表格数据_2.html


<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>js动态添加表格数据_2 使用insertRow和insertCell方法实现</title>

    <script type="text/javascript">

        var mailArr = [
             { "title": "一个c#问题", "name": "张三", "date": "2014-03-21" },
             { "title": "一个javascript问题", "name": "李四", "date": "2014-03-21" },
             { "title": "一个c问题", "name": "五五", "date": "2014-03-21" },
             { "title": "一个c++问题", "name": "赵六", "date": "2014-03-21" }
        ];
        var tab = null;
        window.onload = function () {
            loadTab();
            //全选
            document.getElementById("selA").onclick = function() {
                if (document.getElementById("selA").checked == true) {
                    seleAll(tab, true);
                } else {
                    seleAll(tab, false);
                }
            };            
            //删除所有的选中的
            document.getElementById("delSel").onclick = function() {
                //遍历所有的input控件即可(除了最后一个全选用的checkbox)

                var chks = document.getElementsByTagName('input');

                for (var i = chks.length - 2; i >=0; i--) {
                    var chk = chks[i];
                    if (chk.checked==true) {
                        //选中行删除处理
                        var rowNow = chk.parentNode.parentNode;
                        rowNow.parentNode.removeChild(rowNow);
                    } else {
                        alert("really");
                    }
                }
            };

        };

        function loadTab() {
            tab = document.getElementById("tb");
            //把mailArr循环遍历方式以tr的方式加入表格中
            for (var rowindex = 0; rowindex < mailArr.length; rowindex++) {
                //var tr = tab.insertRow(-1);//-1指最后一行

                var tr = tab.insertRow(tab.rows.length - 1);//插入到末二行,最后一行要给全选那一行保留着
                var td1 = tr.insertCell(-1);
                td1.innerHTML = "<input type='checkbox'/>";
                var td2 = tr.insertCell(-1);
                td2.innerHTML = mailArr[rowindex].title;
                var td3 = tr.insertCell(-1);
                td3.innerHTML = mailArr[rowindex].name;
                var td4 = tr.insertCell(-1);
                td4.innerHTML = mailArr[rowindex].date;
            }
        }
        //要使全选按钮生效,就要遍历所有的表格的行

        function seleAll(mailTab, isSel) {
            for (var i = 0; i < mailTab.rows.length; i++) {
                var tr = mailTab.rows[i];
                    tr.cells[0].childNodes[0].checked = isSel;
            }
        }
    </script>

</head>
<body>
    <table id="tb" border="1" style="border-collapse: collapse;">
        <tr>
            <th>序列</th>
            <th>标题</th>
            <th>发邮人</th>
            <th>发件时间</th>
        </tr>
        <!-- 循环增加 -->


        <!-- 全选 -->
        <tr>
            <td colspan="4">
                <input id="selA" type="checkbox" /><label for="selA">全选</label>
                <a href="#" id="delSel">删除</a></td>
        </tr>
    </table>
</body>
</html>


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值