一天搞定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完成对复选框的全选和全不选效果:
- 在页面中添加复选框
- 引入jQuery的js文件
- 编写jQuery的入口函数
- 点击上面的复选框,获得下面所有的复选框
- 修改下面所有的复选框的值
我摘出最重要的一个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完成复选框的全选和全不选!
.