jQuery实现点击复选框即高亮显示选中行 全选、反选

来源:互联网 发布:美国网络星期一图片 编辑:程序博客网 时间:2024/06/06 01:01
  1. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">  
  2. <head>  
  3. <title>jQuery实现点击复选框即高亮显示选中行 全选、反选</title>  
  4.  <style type="text/css">  
  5.  table{ border:0;border-collapse:collapse;}  
  6.  td{ font:normal 12px/17px Arial;padding:2px;width:100px;}  
  7.  th{ font:bold 12px/17px Arial;text-align:left;padding:4px;border-bottom:1px solid #333;}  
  8.  .even{ background:#FFF38F;}  /* 偶数行样式*/  
  9.  .odd{ background:#FFFFEE;}  /* 奇数行样式*/  
  10.  .selected{ background:#FF6500;color:#fff;}  
  11.  </style>  
  12. <script src="res/jquery-1.7.1.min.js" type="text/javascript"></script>  
  13.  <script type="text/javascript">  
  14.  //插件编写  
  15.  (function ($) {  
  16.      $.fn.extend({  
  17.          "alterBgColor": function (options) {  
  18.              //设置默认值  
  19.              options = $.extend({  
  20.                  odd: "odd", /* 偶数行样式*/  
  21.                  even: "even", /* 奇数行样式*/  
  22.                  selected: "selected" /* 选中行样式*/  
  23.              }, options);  
  24.              $("tbody>tr:odd", this).addClass(options.odd);  
  25.              $("tbody>tr:even", this).addClass(options.even);  
  26.              $('tbody>tr', this).click(function () {  
  27.                  //判断当前是否选中  
  28.                  var hasSelected = $(this).hasClass(options.selected);  
  29.                  //如果选中,则移出selected类,否则就加上selected类  
  30.                  $(this)[hasSelected ? "removeClass" : "addClass"](options.selected)  
  31.                  //查找内部的checkbox,设置对应的属性。  
  32.       .find(':checkbox').attr('checked', !hasSelected);  
  33.              });  
  34.   
  35.   
  36.              //表头中的checkbox (全选 反选)  
  37.              $("thead>tr th:first :checkbox:first ").click(function () {  
  38.                  //判断当前是否选中  
  39.                  var hasSelected = $(this).attr("checked");  
  40.                  //如果选中,则移出selected类,否则就加上selected类  
  41.                  $('tbody>tr')[!hasSelected ? "removeClass" : "addClass"](options.selected);  
  42.                  if (hasSelected)  
  43.                      $('tbody>tr :checkbox').attr("checked",true);  
  44.                  else  
  45.                     $('tbody>tr :checkbox').attr("checked",false);  
  46.              });  
  47.              // 如果单选框默认情况下是选择的,则高色.  
  48.              $('tbody>tr:has(:checked)', this).addClass(options.selected);  
  49.              return this;  //返回this,使方法可链。  
  50.          }  
  51.      });  
  52.  })(jQuery);  
  53.   
  54.  //插件应用  
  55.  $(function(){  
  56.   $("#table2")  
  57.     .alterBgColor()  //应用插件  
  58.     .find("th").css("color","red");//可以链式操作  
  59.  });  
  60.   
  61. </script>  
  62. </head>  
  63. <body>  
  64. <table id="table2">  
  65.  <thead><tr><th><input type="checkbox"/><input type="checkbox" onselect="javascript:alert('kdkdkd');"/></th><th>姓名</th><th>性别</th><th>暂住地</th></tr></thead>  
  66.  <tbody>  
  67.   <tr>  
  68.    <td><input type="checkbox" name="choice" value=""/></td>  
  69.    <td>张三</td>  
  70.    <td></td>  
  71.    <td>浙江宁波</td>  
  72.   </tr>  
  73.   <tr>  
  74.    <td><input type="checkbox" name="choice" value="" /></td>  
  75.     <td>李四</td>  
  76.    <td></td>  
  77.    <td>浙江杭州</td>  
  78.   </tr>  
  79.   <tr>  
  80.    <td><input type="checkbox" name="choice" value="" checked="checked" /></td>  
  81.      <td>王五</td>  
  82.    <td></td>  
  83.    <td>湖南长沙</td>  
  84.   </tr>  
  85.   <tr>  
  86.    <td><input type="checkbox" name="choice" value="" /></td>  
  87.    <td>赵六</td>  
  88.    <td></td>  
  89.    <td>浙江温州</td>   
  90.   </tr>  
  91.   <tr>  
  92.   <td><input type="checkbox" name="choice" value="" /></td>  
  93.     <td>Rain</td>  
  94.    <td></td>  
  95.    <td>浙江杭州</td>  
  96.   </tr>  
  97.   <tr>  
  98.    <td><input type="checkbox" name="choice" value="" checked="checked" /></td>  
  99.    <td>MAXMAN</td>  
  100.    <td></td>  
  101.    <td>浙江杭州</td>  
  102.   </tr>  
  103.  </tbody>  
  104. </table>  
  105. </body>  
  106. </html> 

原创粉丝点击