利用jQuery實現CheckBox全選/全不選/反選

jQuery有些版本中實現CheckBox全選/全不選/反選會有bug,經測試jquery-1.3.1.js–>測試經過,jquery-1.5.1.js–>測試不經過。javascript

實現CheckBox全選/全不選/反選代碼以下:html

<%@ page language="java" pageEncoding="UTF-8"%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <title>複選框全選/全不選/反選</title>
  <meta http-equiv="pragma" content="no-cache">
  <meta http-equiv="cache-control" content="no-cache">
  <meta http-equiv="expires" content="0">
  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  <meta http-equiv="description" content="This is my page">
  <script type="text/javascript"
   src="<%=request.getContextPath()%>/js/jquery-1.3.1.js"></script>
  <script type="text/javascript"> 
  /**
   * 全選
   * 
   * items 複選框的name
   */
  function allCkb(items){
     $('[name='+items+']:checkbox').attr("checked", true);
  }
     
  /**
   * 全不選
   * 
   */
  function unAllCkb(){
     $('[type=checkbox]:checkbox').attr('checked', false);
  }
     
  /**
   * 反選
   * 
   * items 複選框的name
   */
  function inverseCkb(items){
     $('[name='+items+']:checkbox').each(function(){
        //此處用jq寫法頗顯囉嗦。體現不出JQ飄逸的感受。
     //$(this).attr("checked", !$(this).attr("checked"));
    
     //直接使用js原生代碼,簡單實用
     this.checked=!this.checked;
     });
  }
 
  </script>
 </head>
 
 <body>
       <input type='checkbox' name='ckb' value="0"/>白羊座
       <input type='checkbox' name='ckb' value="1"/>獅子座
       <input type='checkbox' name='ckb' value="2"/>水瓶座
       <input type='checkbox' name='ckb' value="3"/>射手座<br/>
       <input type="button" onclick="allCkb('ckb')" value="全 選"/>
    <input type="button" onclick="unAllCkb()" value="全不選"/>
    <input type="button" onclick="inverseCkb('ckb')" value="反 選"/> 
 </body>
</html>

相關文章
相關標籤/搜索