前端学习-第二阶段-day09

今日练习

根据输入内容自动添加表格,点击全选可全选,被选中的点删除所选行,可删除,当每个分类都被选中时,全选按钮自动被选中在这里插入图片描述

<!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>
        * {
            margin: 0;
            padding: 0;
            outline: none;

        }

        .box {
            margin: 40px 0px 40px 100px;
            width: 510px;
        }

        span {
            color: #2b2a24;
        }

        .head {
            margin: auto;
            width: 494px;
            padding-left: 5px;
            padding-top: 10px;
            border: 1px solid #ccc;
        }

        input {
            margin-bottom: 10px;
        }

        button {
            float: right;
            margin-right: 10px;
        }

        table {
            margin: 40px auto;
            text-align: center;
            border-spacing: 0px;
            border-collapse: collapse;

        }

        th {
            border: 1px solid #787878;
            line-height: 29px;
        }

        tr {

            line-height: 29px;
        }

        td {
            border: 1px solid #787878;
        }
    </style>
</head>

<body>
    <div class="box">
        <div class="head">
            <span>请输入姓名:</span>
            <input type="text"><br>
            <span>请选择性别:</span>
            <input type="radio" name="sex" checked><input type="radio" name="sex"><br>
            <span>请输入年龄:</span>
            <input type="text">
            <button>添加到表格</button>
        </div>
        <table width='500'>
            <!-- 表格头部 -->
            <thead>
                <tr>
                    <th width="19%"><input type="checkbox"> 全选</th>
                    <th width="27%">姓名</th>
                    <th>性别</th>
                    <th>年龄</th>
                </tr>
            </thead>
            <!-- 表格主体 可以有任意多个 -->
            <tbody>
                <tr>
                    <td><input type="checkbox"></th>
                    <td>王舞</td>
                    <td></td>
                    <td>7</td>
                </tr>
                <tr>
                    <td><input type="checkbox"></th>
                    <td>李思</td>
                    <td></td>
                    <td>17</td>
                </tr>
                <tr>
                    <td><input type="checkbox"></th>
                    <td>王二麻子</td>
                    <td></td>
                    <td>20</td>
                </tr>
            </tbody>
            <tfoot></tfoot>

        </table>
        <button>删除所选行</button>
    </div>

    <script>
        //获取tbody
        var oTbody = document.getElementsByTagName("table")[0].tBodies[0];
        var oBtn1 = document.getElementsByTagName("button")[0];
        var oBtn2 = document.getElementsByTagName("button")[1];
        var oIn = document.getElementsByTagName("input");
        var oTIn = oTbody.getElementsByTagName("input");
        var oTr = oTbody.getElementsByTagName("tr");
        var k=0;
        //1.点击添加按钮,在表格中添加一行
        oBtn1.onclick = function () {
            //3.创建行
            var oTr = document.createElement("tr");
            var oTd1 = document.createElement("td");
            var oTd2 = document.createElement("td");
            var oTd3 = document.createElement("td");
            var oTd4 = document.createElement("td");

            //添加复选框
            oTd1.innerHTML = '<input type="checkbox">';
            oTr.appendChild(oTd1);

            //添加姓名
            oTd2.innerHTML = oIn[0].value;
            oTr.appendChild(oTd2);

            //添加性别
            var sex = oIn[1].checked == true ? "男" : "女";
            oTd3.innerHTML = sex;
            oTr.appendChild(oTd3);

            //添加年龄
            oTd4.innerHTML = oIn[3].value;
            oTr.appendChild(oTd4);

            //2.在表格中添加一行 
            oTbody.appendChild(oTr);

            
            for (var i = 0; i < oTIn.length; i++) {
            oTIn[i].onclick = function () {
                if (this.checked == true) {
                    k++;
                    if(k>oTIn.length){
                            k=oTIn.length;
                        }
                    console.log(k);
                } else if (this.checked != true) {
                    k--;
                    if(k<0){
                        k=0;
                    }
                    console.log(k);
                };
                if (k == oTIn.length) {
                    oIn[4].checked = true
                } else {
                    oIn[4].checked = false
                }
            }
            if (k == oTIn.length) {
                        oIn[4].checked = true
                    } else {
                        oIn[4].checked = false
                    }
        }


            

        }
        
        //点击删除被勾选的框

        oBtn2.onclick = function () {
            for (var i = 0; i < oTr.length; i++) {
                if (oTIn[i].checked == true) {
                    oTbody.removeChild(oTbody.children[i]);
                    i--;
                    k--;
                }
            }
        }
        //点击全选,再次点击取消全选
        oIn[4].onclick = function () {
            for (var i = 0; i < oTr.length; i++) {
                oTIn[i].checked = oIn[4].checked
            }
        }


        //当所有分类复选框被选中时,让全选选中
       
            for (var i = 0; i < oTIn.length; i++) {
                oTIn[i].onclick = function () {
                    if (this.checked == true) {
                        k++;
                        if(k>oTIn.length){
                            k=oTIn.length;
                        }
                        console.log(k);
                    } else if (this.checked != true) {
                        k--;
                        if(k<0){
                            k=0;
                        }
                        console.log(k);
                    };
                    if (k == oTIn.length) {
                        oIn[4].checked = true
                    } else {
                        oIn[4].checked = false
                    }
                }
            }


       
    </script>
</body>

</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值