这是一段用jquery实现全选的代码,主要思路以下:javascript
1.全部的复选框都有单击事件,全部效果都是在单击事件下实现的html
2.全选复选框所实现的功能与其余复选选项实现的功能不一样,全部在单击事件内作一个判断,是不是全选复选框的单击事件java
3.若是是,则执行判断全选复选框是否选中,若是当前状态为选中,那么点击后取消勾选,同时取消全部选项的勾选,若是全选当前未选中,点击后勾选,并勾选全部jquery
4.若是不是,说明点击的对象是出全选外的其余选项,那么就要判断当前已经勾选的选项的数量,是否等于除了全选复选框之外全部选项的数量,若是相等,则说明,选项所有勾选,同时将全选复选框也勾选,不然不勾选。this
下面是个人代码。spa
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>全选效果</title> <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> <script type="text/javascript"> $(function(){ $('input').click(function(){ if($(this).index() == 0){ //判断当前全选框是否选中,若是选中则全选,不然全不选 if($('input').eq(0).prop('checked')){ $(this).nextAll().prop('checked',true); }else{ $(this).nextAll().prop('checked',false); } }else{ //判断除了全选以外的选项是否所有选中,选中则勾上全选,不然全不选 if($('input:gt(0):checked').length == $('input').length-1){ $('input').eq(0).prop('checked',true) }else{ $('input').eq(0).prop('checked',false) } } }) }) </script> </head> <body> <input type="checkbox" />全选 <input type="checkbox" />语文 <input type="checkbox" />数学 <input type="checkbox" />英语 </body> </html>
实现全选效果的思路也比较多,这种思路相对与分开两个单击事件的思路来讲,稍微有点难理解,但其实实现效果的代码,是同样的。code