zoukankan      html  css  js  c++  java
  • 全选练习-原生版和jQuery

    今天来做一些练习,做全选练习

    原生版的实现:

    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style type="text/css">
                
            </style>
        </head>
        <script type="text/javascript">
            window.onload = function(){
                var items = document.getElementsByName("items");
                
                var checkedAllBox = document.getElementById("checkedAllBox");
                //全选
                var checkedAllBtn = document.getElementById("checkedAllBtn");
                checkedAllBtn.onclick = function(){
                    
                    for(var i = 0; i<items.length;i++){
                        items[i].checked = true;
                    }
                    //更新全选和全不选
                    checkedAllBox.checked = true;
                }
                //全不选
                var checkedNoBtn = document.getElementById("checkedNoBtn");
                checkedNoBtn.onclick = function(){
                    for(var i = 0; i<items.length;i++){
                        items[i].checked = false;
                    }
                    //更新全选和全不选
                    checkedAllBox.checked = false;
                }
                //反选
                var checkedRevBtn = document.getElementById("checkedRevBtn");
                checkedRevBtn.onclick = function(){
                    
                    for(var i = 0; i<items.length;i++){
                        items[i].checked = !items[i].checked;
                        if (!items[i].checked) {
                            checkedAllBox.checked = false;
                        }
                    }
                }
                //提交
                var sendBtn = document.getElementById("sendBtn");
                sendBtn.onclick = function(){
                    for(var i = 0; i<items.length;i++){
                        if(items[i].checked){
                            alert(items[i].value)
                        }
                    }
                }
                //通过点击全选和全不选,items也选中
                checkedAllBox.onclick = function(){
                    for(var i =0;i<items.length;i++){
                        items[i].checked = this.checked;
                    }
                }
                //通过点击items,如果有全选则全选、全不选也出现
                for (var i = 0; i < items.length; i++) {
                    items[i].onclick = function(){
                        checkedAllBox.checked = true;
                        
                        for(var j =0;j<items.length;j++){
                        if(!items[j].checked){
                            checkedAllBox.checked = false;
                            break
                        }
                    }
                    }
                }
            }
        </script>
    
        <body>
    
            <form method="post" action="">
                你爱好的运动是?<input type="checkbox" id="checkedAllBox" />全选/全不选
    
                <br />
                <input type="checkbox" name="items" value="足球" />足球
                <input type="checkbox" name="items" value="篮球" />篮球
                <input type="checkbox" name="items" value="羽毛球" />羽毛球
                <input type="checkbox" name="items" value="乒乓球" />乒乓球
                <br />
                <input type="button" id="checkedAllBtn" value="全 选" />
                <input type="button" id="checkedNoBtn" value="全不选" />
                <input type="button" id="checkedRevBtn" value="反 选" />
                <input type="button" id="sendBtn" value="提 交" />
            </form>
        </body>
    
    </html>

    功能说明:
    1. 点击'全选': 选中所有爱好
    2. 点击'全不选': 所有爱好都不勾选
    3. 点击'反选': 改变所有爱好的勾选状态
    4. 点击'提交': 提示所有勾选的爱好
    5. 点击'全选/全不选': 选中所有爱好, 或者全不选中
    6. 点击某个爱好时, 必要时更新'全选/全不选'的选中状态

            $(function(){
                    var $items = $(":checkbox[name='items']");
                    var $checkedAllBox = $("#checkedAllBox");
                    //1. 点击'全选': 选中所有爱好
                    $("#checkedAllBtn").click(function(){
                        
                    //$items.each(function(){
                    //this.checked = true;
                    //})
                    ////全选/全不选选项
                    //$checkedAllBox[0].checked = true;
                    $items.prop("checked",true);
                    $checkedAllBox.prop("checked",true);
                    });
                    
                    //2. 点击'全不选': 所有爱好都不勾选
                    $("#checkedNoBtn").click(function(){
                        $items.prop("checked",false);
                        $checkedAllBox.prop("checked",false);
                    });
                    
                    //3. 点击'反选': 改变所有爱好的勾选状态
                    $("#checkedRevBtn").click(function(){
                        $items.each(function(){
                            this.checked = !this.checked;
                        })
                        $checkedAllBox.prop("checked",$items.filter(":not(:checked)").length===0)
                    });
                    
                    //4. 点击'提交': 提示所有勾选的爱好
                    $("#sendBtn").click(function(){
                        $items.filter(':checked').each(function () {
                          alert(this.value)
                        })
                    });
                    //5. 点击'全选/全不选': 选中所有爱好, 或者全不选中
                    $checkedAllBox.click(function(){
                        
                        $items.prop("checked",this.checked);
                    });
                    
                    //6. 点击某个爱好时, 必要时更新'全选/全不选'的选中状态
                    $items.click(function(){
                        $checkedAllBox.prop("checked",$items.filter(":not(:checked)").length===0)
                    })
                    
                    
                })
  • 相关阅读:
    SQL SERVER2005 的三种复制类型概述
    Autofac IoC容器基本实战【2】
    Autofac IoC容器基本使用步骤【1】
    在执行一行代码之前CLR做的68件事[The 68 things the CLR does before executing a single line of your code]
    .NET Entity Framework(EF)使用SqlQuery直接操作SQL查询语句或者执行过程
    使用 Entity Framework 7 进行 SQLite 的 CURD 操作
    NPOI导入导出EXCEL通用类,供参考,可直接使用在WinForm项目中
    Your Progress As A Programmer Is All Up To You
    为了效率而外包,不要因为懒惰外包
    10分钟看懂社群营销(上集)[转]
  • 原文地址:https://www.cnblogs.com/caicaihong/p/9391894.html
Copyright © 2011-2022 走看看