zoukankan      html  css  js  c++  java
  • jquery实现全选、全不选、反选、获取选中的所有值总结

    HTML

    我们的页面上有一个歌曲列表,列出多行歌曲名称,并匹配复选框供用户选择,并且在列表下方有一排操作按钮。

    <!doctype html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>checkbox2</title>
    <style>
    li {
    list-style:none;
    }
    </style>
    <script src="js/jquery-1.7.2.min.js"></script>   <!-- 务必要引用jquery库文件 -->
    </head>
    <body>
    <ul id="list"> 
    <li><label><input type="checkbox" value="1"> 1.如梦一场</label></li>
    <li><label><input type="checkbox" value="2"> 2.海阔天空</label></li>
    <li><label><input type="checkbox" value="3"> 3.Let It go</label></li>
    <li><label><input type="checkbox" value="4"> 4.不再犹豫</label></li>
    <li><label><input type="checkbox" value="5"> 5.光辉岁月</label></li>
    <li><label><input type="checkbox" value="6"> 6.泡沫</label></li>
    </ul>
    <input type="checkbox" id="all">
    <input type="button" value="全选" class="btn" id="selectAll"> 
    <input type="button" value="全不选" class="btn" id="unSelect"> 
    <input type="button" value="反选" class="btn" id="reverse"> 
    <input type="button" value="获得选中的所有值" class="btn" id="getValue">
    </body>
    </html>

     jQuery

    jQuery 事件 - ready() 方法有一下两种:

    $(document).ready(function(){});
    
    $(function(){});

    需求:1、全选或全不选。当勾选全选按钮#selectAll旁边的复选框#all时,列表中的选项全部选中,反之取消勾选则列表中的选项全部为未选中状态。

    //全选、全不选

    $("#all").click(function(){
    if (this.checked) {
    $("#list :checkbox").attr("checked",true);
    } else{
    $("#list :checkbox").attr("checked",false);
    };
    });

    需求:2、全选。当点击全选按钮#selectAll或者勾选全选按钮旁边的复选框#all时,列表中所有的选项都会被选中,包括全选旁边的复选框也是选中状态。

    //全选
    
    $("#selectAll").click(function(){
    $("#list :checkbox,#all").attr("checked",true);
    });

    需求:3、全不选。当点击全不选按钮#unSelect时,列表中所有的选项都是未选中状态,当然包括#all也是未选中状态。

    //全不选
    
    $("#unSelect").click(function(){
    $("#list :checkbox,#all").attr("checked",false);
    });

    需求:4、反选。当点击反选按钮#reverse,列表中所有被选中的选项变为未选中状态,而所有未选中的选项变为已选中状态,当然也要注意#all的状态。

    //反选 each 遍历
    
    $("#reverse").click(function(){
    $("#list :checkbox").each(function(){
    $(this).attr("checked",!$(this).attr("checked"));
    });
    allchk();
    });

    上述代码中遍历了选项列表,然后改变checked属性,调用函数allchk()是干什么的,别急,留在后面介绍(这部分和接下来的内容没有弄太明白,欢迎高手点评)。

    5、获得选中的所有值。我们要跟后台程序交互就必须获取列表中所选项的值,我们通过遍历数组,将选中项的值存放在数组中,最后组成由逗号(,)隔开的字符串,开发者就可以通过获取这个字符串进行相应的操作了。

    $("#getValue").click(function(){
    var valArr = new Array;
    $("#list :checkbox[checked]").each(function(i){
    valArr[i] = $(this).val();
    });
    var vals = valArr.join(',');//转换为逗号隔开的字符串 join 拼合
    alert(vals);
    });

    为了完善选中选项功能,我们在单击列表中某个选项时,如果勾选的项刚好满足全部选中的条件,则#all也要相应的变为选中状态,同样,如果事先所有的选项是选中状态时,当取消勾选某个选项时,那么#all也要相应的变为未选中状态。

    //设置全选复选框
    $("#list :checkbox").click(function(){
        allchk();
    });
    
    函数allchk()就是用来检测全选框#all应该是选中状态还是未选中状态的,请看代码。
    function allchk(){
        var chknum = $("#list :checkbox").size();//选项总个数
        var chk = 0;
        $("#list :checkbox").each(function () {  
            if($(this).attr("checked")==true){
                chk++;
            }
        });
        if(chknum==chk){//全选
            $("#all").attr("checked",true);
        }else{//不全选
            $("#all").attr("checked",false);
        }
    }
    声明:文章来源于helloweba.com并保留原文链接:http://www.helloweba.com/view-blog-254.html
  • 相关阅读:
    真正的e时代
    在线手册
    UVA 10616 Divisible Group Sums
    UVA 10721 Bar Codes
    UVA 10205 Stack 'em Up
    UVA 10247 Complete Tree Labeling
    UVA 10081 Tight Words
    UVA 11125 Arrange Some Marbles
    UVA 10128 Queue
    UVA 10912 Simple Minded Hashing
  • 原文地址:https://www.cnblogs.com/hongxp/p/5939575.html
Copyright © 2011-2022 走看看