一天搞定jQuery(三)——使用jQuery完成复选框的全选和全不选

还记得之前我使用JavaScript来实现复选框的全选和全不选效果吗?如果读者初次翻阅本文,可记得看看教你一天玩转JavaScript(七)——使用JavaScript完成复选框的全选和全不选的效果!现在我就来使用jQuery完成对复选框的全选和全不选效果,显示效果为: 
这里写图片描述 
要完成这个效果,必然要了解jQuery中对属性操作的方法:

  • attr():设置或返回被选元素的属性值。

    • 使用方法一:$("xxx").attr("src");——返回被选元素的src属性值
    • 使用方法二:$("xxx").attr("src","test.jpg");——设置被选元素的src属性值
    • 使用方法三:$("xxx").attr({src:"test.jpg", alt:"Test Image"});——为被选元素设置src和alt属性
  • removeAttr():从每一个匹配的元素中删除一个属性,即移除属性。

  • prop():与attr()方法类似,只不过它是新版本的方法。 
    • 使用方法一:$("xxx").prop("src");——返回被选元素的src属性值
    • 使用方法二:$("xxx").prop("src","test.jpg");——设置被选元素的src属性值
    • 使用方法三:$("xxx").prop({src:"test.jpg", alt:"Test Image"});——为被选元素设置src和alt属性
  • removeProp():与removeAttr()方法类似,移除属性。
  • addClass(class):为每个匹配的元素添加指定的类名,即添加某个样式。
  • removeClass(class):从所有匹配的元素中删除全部或者指定的类,即移除某个样式。

下面按照如下步骤来使用jQuery完成对复选框的全选和全不选效果:

  1. 在页面中添加复选框
  2. 引入jQuery的js文件
  3. 编写jQuery的入口函数
  4. 点击上面的复选框,获得下面所有的复选框
  5. 修改下面所有的复选框的值

我摘出最重要的一个html文件——【data.html】:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <link rel="stylesheet" href="../css/style.css" />
        <script type="text/javascript" src="../js/jquery-1.11.3.min.js" ></script>
        <script>
            // 表格的隔行换色
            $(function() {
                $("tbody tr:odd").addClass("odd");
                $("tbody tr:even").addClass("even");
            });
        </script>
    </head>
    <body>
        <table id="tab1" border="1" width="80%" align="center">
            <thead>
            <tr>
                <th><input type="checkbox" id="selectAll" /></th>
                <th>分类的ID</th>
                <th>分类的名称</th>
                <th>分类的描述</th>
                <th>操作</th>
            </tr>
            </thead>
            <tbody>
                <tr>
                    <td><input type="checkbox" name="ids" /></td>
                    <td>1</td>
                    <td>手机数码</td>
                    <td>手机数码</td>
                    <td><a href="">修改</a>|<a href="">删除</a></td>
                </tr>
                <tr>
                    <td><input type="checkbox" name="ids" /></td>
                    <td>2</td>
                    <td>电脑办公</td>
                    <td>电脑办公</td>
                    <td><a href="">修改</a>|<a href="">删除</a></td>
                </tr>
                <tr>
                    <td><input type="checkbox" name="ids" /></td>
                    <td>3</td>
                    <td>烟酒糖茶</td>
                    <td>烟酒糖茶</td>
                    <td><a href="">修改</a>|<a href="">删除</a></td>
                </tr>
                <tr>
                    <td><input type="checkbox" name="ids" /></td>
                    <td>4</td>
                    <td>鞋靴箱包</td>
                    <td>鞋靴箱包</td>
                    <td><a href="">修改</a>|<a href="">删除</a></td>
                </tr>
                <tr>
                    <td><input type="checkbox" name="ids" /></td>
                    <td>5</td>
                    <td>汽车用品</td>
                    <td>汽车用品</td>
                    <td><a href="">修改</a>|<a href="">删除</a></td>
                </tr>
            </tbody>
        </table>
    </body>
</html>

接着编写jQuery代码来完成对复选框的全选和全不选效果:
<script>    
    // 复选框的全选和全不选
    $(function() {
        // 获得上面的复选框
        var $selectAll = $("#selectAll");
        // alert($selectAll.prop("checked")); // 返回undefined未定义
        $selectAll.click(function() {
            // alert($selectAll.prop("checked"));
            if ($selectAll.prop("checked") == true) {
                // 上面的复选框已被选中
                $(":checkbox[name='ids']").prop("checked", true);
            } else {
                // 上面的复选框没被选中
                $(":checkbox[name='ids']").prop("checked", false);
            }
        });
    });
</script>
细心的读者应该能看出以上代码能简化为:
<script>    
    // 复选框的全选和全不选
    $(function() {
        $("#selectAll").click(function() {
            $(":checkbox[name='ids']").prop("checked", this.checked); // this指代的你当前选择的这个元素的JS对象
        });
    });
</script>

 

读者如须查看源码,可参考一天搞定jQuery(三)——使用jQuery完成复选框的全选和全不选

 

 

 

 

.

posted @ 2018-04-09 13:51  剑仙6  阅读(228)  评论(0编辑  收藏  举报
欢迎访问个人网站www.qingchun.在线