js_复选框,全选全不选

checkbox利用JQuer中 attr('checked', true)设置状态只有第一次有用


  在JQuery中可以使用attr()来访问对象的属性,但是在某些时候,比如访问input的disabled属性的时候,会有些问题。在有的浏览器中,只要写了disabled属性就可以,有的则要写:disabled="disabled"。所以JQuery提供了新的方法prop()来获取这些属性,使用prop()的时候,返回值是标准属性:true/false,不会回返“disabled”或者“”。那么,那些属性应该使用attr()访问,哪些应该用prop()访问呢?

第一个原则:只添加属性名称该属性就会生效的应该使用prop();

第二个原则:只存在true/false的属性应该使用prop()。

像如果是设置disabled或者checked这些属性,应该使用prop()方法,而不是使用attr()方法。

<!DOCTYPE html >   
  1. <html>  
  2.     <head>  
  3.         <meta charset="UTF-8">  
  4.         <title>复选框应用</title>  
  5.         <script type="text/javascript" src="js/jquery-1.10.2.min.js" ></script>  
  6.         <style>  
  7.             .checkbox{  
  8.                 border: 1px solid #A9A9A9;  
  9.                 margin: 10px auto;  
  10.                 padding: 10px 10px;  
  11.             }  
  12.         </style>  
  13.         <script>  
  14.             $(function(){  
  15.                 //全选  
  16.                 $("#CheckedAll").click(function(){  
  17.                     //$("[name=items]:checkbox").attr('checked',true);//只有第一次生效  
  18.                     $("[name=items]:checkbox").prop('checked',true);//只有第一次生效  
  19.                 });  
  20.                 //全不选  
  21.                 $("#CheckedNo").click(function(){  
  22.                     //$("[name=items]:checkbox").attr('checked',false);//只有第一次生效  
  23.                     $("[name=items]:checkbox").prop('checked',false);  
  24.                 });  
  25.                 //反选  
  26.                 $("#CheckedRev").click(function(){  
  27.                     $("[name=items]:checkbox").each(function(){  
  28.                         this.checked=!this.checked;  
  29.                     })  
  30.                 });  
  31.                 //提交  
  32.                 $("#send").click(function(){  
  33.                     var str="你选中的是:\r\n";  
  34.                     $("[name=items]:checked").each(function(){  
  35.                         str+=$(this).val()+"\r\n";  
  36.                     })  
  37.                     alert(str);  
  38.                 });  
  39.                 //全选/全不选  
  40.                 $("#CheckedAN").click(function(){  
  41.                     $("[name=items]:checkbox").prop("checked",this.checked);  
  42.                 })  
  43.                 //当复选框取消某一个选项的选中状态是时,全选/全不选需要取消选中状态  
  44.                 $("[name=items]:checkbox").click(function(){  
  45.                     var tmp=$("[name=items]:checkbox");  
  46.                     $("#CheckedAN").prop("checked",tmp.length==tmp.filter(":checked").length);  
  47.                 })  
  48.             })  
  49.         </script>  
  50.     </head>  
  51.     <body>  
  52.     <form action="#" method="post" id="regForm">  
  53.         <fieldset>  
  54.             <legend>复选框应用</legend>  
  55.             <div class="checkbox">  
  56.                 你爱好的运动是?  
  57.                 <input type="checkbox" id="CheckedAN" value="全选/全不选"/>全选/全不选  
  58.                 <br />  
  59.                 <input type="checkbox" name="items" value="足球"/>足球  
  60.                 <input type="checkbox" name="items" value="篮球"/>篮球  
  61.                 <input type="checkbox" name="items" value="羽毛球" />羽毛球  
  62.                 <input type="checkbox" name="items" value="乒乓球" />乒乓球  
  63.                 <br />  
  64.                 <input type="button" id="CheckedAll" value="全选"/>  
  65.                 <input type="button" id="CheckedNo" value="全不选"/>  
  66.                 <input type="button" id="CheckedRev" value="反选" />  
  67.                 <input type="button" id="send" value="提交" />  
  68.             </div>  
  69.         </fieldset>  
  70.     </form>  
  71.     </body>  
  72. </html>  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值