js实现全选反选

在前端中用到全选反选的案例并不少,在这里呢我就实现这个功能给大家参考参考。

这里呢就先贴上我的html和css代码

<div class="wrap">
            <table>
                <thead>
                    <tr>
                        <th>
                            <input type="checkbox" id="theadInp" />
                        </th>
                        <th>快递</th>
                        <th>收件人</th>
                        <th>电话</th>
                    </tr>
                </thead>
                <tbody id="tbody">
                    <tr>
                        <td>
                            <input type="checkbox" />
                        </td>
                        <td>顺丰</td>
                        <td>张大大</td>
                        <td>186*****897
                    </tr>
                    <tr>
                        <td>
                            <input type="checkbox" />
                        </td>
                        <td>韵达</td>
                        <td>张全蛋</td>
                        <td>186*****897
                    </tr>
                    <tr>
                        <td>
                            <input type="checkbox" />
                        </td>
                        <td>圆通</td>
                        <td>韩非</td>
                        <td>186*****897
                    </tr>
                    <tr>
                        <td>
                            <input type="checkbox" />
                        </td>
                        <td>中国邮政</td>
                        <td>卫庄</td>
                        <td>186*****897
                    </tr>
                </tbody>
            </table>
        </div>

这是html部分的,下面呢,我附上css部分的代码:

    * {
                padding: 0;
                margin: 0;
            }

            .wrap {
                width: 300px;
                margin: 100px auto 0;
            }

            table {
                border-collapse: collapse;
                border-spacing: 0;
                border: 1px solid #c0c0c0;
                width: 300px;
            }

            th,
            td {
                border: 1px solid #d0d0d0;
                color: #404060;
                padding: 10px;
            }

            th {
                background-color:rgb(51, 199, 18);
                font: bold 16px "微软雅黑";
                color: #fff;
            }

            td {
                font: 14px "微软雅黑";
            }

            tbody tr {
                background-color: #f0f0f0;
            }

            tbody tr:hover {
                cursor: pointer;
                background-color: #fafafa;
            }

展示出来的布局是这样的:

好了,下面我们就开始讲重点把,做之前的呢,一定要理清思路,只有理清思路的才能好下手做啊

我们要通过点击第一个input标签来改变所有input标签的选择状态,

1.首先要获取到控制总选择状态的input标签,我们命名为inputAll

2.然后把每个input标签存到一个数组中去,我们命名为icheck

3.点击inputAll来改变状态,并且让icheck里面的input能跟着他的状态来变化

代码如下:

window.onload = function() {
                //先获得控制全选反选的input标签
                var inputAll = document.getElementById("theadInp");
                //获得tbody
                var tbody = document.getElementById("tbody");
                //获得天tbody里面的子元素
                var icheck = tbody.getElementsByTagName("input");
                console.log(icheck);
                //给控制全选反选的input标签绑定事件
                inputAll.onclick = function() {
                    //遍历tbody里面的input标签,把inputAll的状态赋值给icheck
                    for(var i = 0; i < icheck.length; i++) {
                        icheck[i].checked = this.checked;
                    }
                }

上面都有写注释,大家肯定都能看的懂的,也没难点,就不需要解释了。

看下面:

以为这样就结束了事了吗?然而并没有。里面还是有个小问题的,就是当下面的input有一个以上没选中的时候,那么inputAll的状态也必须要跟着变化,总不能只让人家听他一个人的话吧,这就太不像话了。

for(var i = 0; i < icheck.length; i++) {
                    //给每个子元素都绑定事件
                    icheck[i].onclick = function() {
                        //点击的时候在遍历icheck,看看是否有没选中的
                        for(var j = 0; j < icheck.length; j++) {
                            //定义一个标志来记录
                            var flag = true;
                            if(icheck[j].checked == false) {
                                flag = false;
                            }
                        }
                        inputAll.checked=flag;
                    }
                }

现在这样才是真的完事了,这样才是真的完美解决了。大家可以自己试试。lz要去减肥去了

时间: 2024-11-21 01:58:15

js实现全选反选的相关文章

js实现全选,反选,全不选

思路:1.获取元素.2.用for循环历遍数组,把checkbox的checked设置为true即实现全选,把checkbox的checked设置为false即实现不选.3.通过if判断,如果checked为true选中状态的,就把checked设为false不选状态,如果checked为false不选状态的,就把checked设为true选中状态. js代码 <script> window.onload=function(){ var CheckAll=document.getElementB

js 实现全选反选

最近在做一个js特效:全选,反选. 效果能实现,可是只执行了一次.多次点击,发现效果不能触发了.后来查了些文档,才了解是  attr  跟 prop 的区别! 代码直接贴出来: ($("#全选ID").attr("checked") 的返回值 就是  true/false )  attr只能运行一次:   function checked_all(){                            $("input[name='XXX']:chec

js制作全选 反选 不选

<!DOCTYPE html><html >    <head>        <meta charset="utf-8">        <title></title>    </head>    <style>        </style>        <script>    window.onload=function (){        var aBtn

js购物车全选反选、商品价格统计

模仿淘宝购物车的全选全不选,根据选中的商品计算价格,指定店铺选择.以下是我自己在做H5页面的时候整理出来的,想我一个纯php的来写成这样也不容易.不完善的地方欢迎各位小伙伴指出~ html代码: <body>     <header class="mui-bar mui-bar-nav">         <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"

js实现全选反选功能

开始慢慢地学习js&jQuery. function clicked(){ var arr=document.getElementsByName("product"); for(var i=0;i<arr.length;i++) { arr[i].checked=document.getElementById("all").checked; } } 出现问题如下: 1.getElementsByName开始被写成getElementByName,注意少

用js做出全选和反选效果

效果图如下: <script language="javascript" type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" language="javascript"> $(function(){  $("#selecAll").clic

全选反选取消-js代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

elementUI+JS实现全选与反选

在实际项目开发过程中,遇到的需求,需要实现全选以及取消全选等功能,主要使用ElementUI + JS来实现,具体代码如下: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initia

JS 全选反选功能

全选按钮:<input type=\"checkbox\" id=\"cheSelectAll\" />选择</li>"); 选择项:<input name=\"chkItem\" type=\"checkbox\" value=\"" + this.ID + "\" /> //全选反选 $("#cheSelectAll"