JQuey中 attr('checked', true)設置狀態只有第一次有用


用prop()

 

 

jQuery中可以使用attr()來訪問對象的屬性,但是在某些時候,比如訪問input的disabled屬性的時候,會有些問題。在有的瀏覽器中,只要寫了disabled屬性就可以,有的則要寫:disabled="disabled"。所以jquery提供了新的方法prop()來獲取這些屬性,使用prop()的時候,返回值是標准屬性:true/false,不會回返“disabled”或者“”。那么,那些屬性應該使用attr()訪問,哪些應該用prop()訪問呢?

第一個原則:只添加屬性名稱該屬性就會生效的應該使用prop();

第二個原則:只存在true/false的屬性應該使用prop()。

像如果是設置disabled或者checked這些屬性,應該使用prop()方法,而不是使用attr()方法。

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM