JavaScript-checkbox标签-隐藏、显示、全选、取消和反选等操作

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .hide{
            display: none;
        }
        .c1{
            position: fixed;
            left: 0;
            top: 0;
            right: 0;
            bottom: 0;
            background-color: black;
            opacity: 0.4;
            z-index: 9;
        }
        .c2{
            width: 500px;
            height: 400px;
            background-color: white;
            position: fixed;
            left: 50%;
            top: 50%;
            z-index: 10;
            margin-top: -200px;
            margin-left: -250px

        }
    </style>
</head>
<body style="margin: 0">

    <div>
        <input type="button" value="添加" onclick="ShowModel();"/>
        <input type="button" value="全选" onclick="ChooseAll();"/>
        <input type="button" value="取消" onclick="CancleAll();"/>
        <input type="button" value="反选" onclick="Reverse();"/>
        <table>
            <thead>
                <tr>
                    <th>选择</th>
                    <th>主机名</th>
                    <th>端口</th>
                    <th>IP</th>
                </tr>

            </thead>
            <tbody id="tb">
                <tr>
                    <td><input type="checkbox"></td>
                    <td>hehe</td>
                    <td>90</td>
                    <td>10.192.17.20</td>
                </tr>
                <tr>
                    <td><input type="checkbox"></td>
                    <td>haha</td>
                    <td>2375</td>
                    <td>10.192.17.21</td>
                </tr>
                <tr>
                     <td><input type="checkbox"></td>
                    <td>gaga</td>
                    <td>6379</td>
                    <td>10.192.17.22</td>
                </tr>

            </tbody>
        </table>
    </div>
    <!-- 遮罩层start-->
    <div id="i1" class="c1 hide">

    </div>
    <!-- 遮罩层end-->
    <!--弹出框-->

    <div id="i2" class="c2 hide">

       <p><input type="text"/></p>
       <p><input type="text"/></p>
       <p>
           <input type="button" value="取消" onclick="HideModel();"/>
           <input type="button" value="确定"/>
       </p>
    </div>
    <!--弹出框-->
    <script>
        //弹框的显示和隐藏ShowModel、HideModel
        function ShowModel(){
            document.getElementById('i1').classList.remove('hide');
            document.getElementById('i2').classList.remove('hide');
        }
        function HideModel(){
            document.getElementById('i1').classList.add('hide');
            document.getElementById('i2').classList.add('hide');
        }
        //全选
        function ChooseAll() {
            //获取所有的tr
            var tbody = document.getElementById('tb');
            var tr_list = tbody.children;
            //循环所有的tr,current_tr
            for (var i = 0; i < tr_list.length; i++) {
                var current_tr = tr_list[i];
                var checkbox = current_tr.children[0].children[0];
                // 给checkbox设置为true就代表勾选,false就代表取消

                checkbox.checked = true;

            }
        }
        //取消全选
            function CancleAll() {
                //获取所有的tr
                var tbody = document.getElementById('tb');
                var tr_list = tbody.children;
                //循环所有的tr,current_tr
                for (var i = 0; i < tr_list.length; i++) {
                    var current_tr = tr_list[i];
                    var checkbox = current_tr.children[0].children[0];
                    // 给checkbox设置为true就代表勾选,false就代表取消

                    checkbox.checked = false;

                }
            }
            //反选
             function Reverse() {
                //获取所有的tr
                var tbody = document.getElementById('tb');
                var tr_list = tbody.children;
                //循环所有的tr,current_tr
                for (var i = 0; i < tr_list.length; i++) {
                    var current_tr = tr_list[i];
                    var checkbox = current_tr.children[0].children[0];
                    // 给checkbox设置为true就代表勾选,false就代表取消
                    /*
                    第一种和第二种都可以都能实现反选
                    if (checkbox.checked){
                        checkbox.checked=false;
                    }
                    else
                    {
                       checkbox.checked=true;

                    }*/
                    checkbox.checked = ! checkbox.checked;

                }

        }

    </script>
</body>
</html>