2019-08-27-JS的全选反选2

论如何通过JS实现全选单选反选功能

今天是来高博学习的第42天。

需求如下。


话不多说,直接上代码。

<!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>

        .checkall {

            margin: 0 auto;

        }

        #btn {

            display: block;

            margin: 0 auto;

        }

    </style>

</head>

<body>

    <div class="main">

        <table class="checkall" border="1" cellspacing="0">

            <thead>

                <tr>

                    <td>

                        <input type="checkbox" id="intocheckall">全选

                    </td>

                    <td>

                        你好

                    </td>

                    <td>

                        我好

                    </td>

                </tr>

            <tbody id="tb_check">

                <tr>

                    <td><input type="checkbox"></td>

                    <td>

                        你好

                    </td>

                    <td>

                        我好

                    </td>

                </tr>

                <tr>

                    <td><input type="checkbox"></td>

                    <td>

                        你好

                    </td>

                    <td>

                        我好

                    </td>

                </tr>

                <tr>

                    <td><input type="checkbox"></td>

                    <td>

                        你好

                    </td>

                    <td>

                        我好

                    </td>

                </tr>

                <tr>

                    <td><input type="checkbox"></td>

                    <td>

                        你好

                    </td>

                    <td>

                        我好

                    </td>

                </tr>

            </tbody>

            </thead>

        </table>

        <input type="button" id="btn" value="反选">

    </div>

    <script>

        //咱们来实现一个点击全选的效果

        var checkall = document.querySelectorAll('#tb_check input[type=checkbox]');

        var intocheckall = document.getElementById('intocheckall');

        intocheckall.onclick = function () {

            var i = 0;

            var len = checkall.length;

            for (; i < len; i++) {

                var check = checkall[i];

                check.checked = this.checked;

            }

        }

        //接下来咱们来实现一个点击全部子的checkbox选中全选。有一个未点则取消全选。

        var len = checkall.length;

        for (var i = 0; i < len; i++) {

            var check = checkall[i];

            check.onclick = function () {

                singleChecked();

            }

        }

        //在外面定义一个函数。有一个子的checkbox没有选中,全选也不选中。

        function singleChecked() {

            var isAllchecked = true;

            for (i = 0; i < len; i++) {

                check = checkall[i];

                //循环遍历子checkbox

                if (!check.checked) {

                    isAllchecked = false;

                    break;

                }

            }

            intocheckall.checked = isAllchecked;

        }

        //接下来咱们来实现一个反选的功能。即点击 反选 按钮。改变原本的子checkbox的选中状态即可。

        var btn = document.getElementById('btn');

        btn.onclick = function () {

            for (var i = 0; i < len; i++) {

                var check = checkall[i];

                // if(check.checked){

                //    check.checked=false;

                // }

                // else{

                //    check.checked=true;

                // }

                //此上又为本人的愚笨的方法

                check.checked = !check.checked;

            }

            singleChecked();

        }

    </script>

</body>

</html>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容