input 选择 全选 反选 的js代码

下面的这个代码是网络上的代码,做一个分析记录,原网址如下  http://www.jq22.com/jquery-info3836

 

html:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Jquery表格行全选反选</title>
<link rel="stylesheet" href="css/bootstrap.min.css">
</head>
<body>
<div class="container" style="margin-top:150px;">
  第一步,引入CSS
  <code><link rel="stylesheet" href="css/bootstrap.min.css"></code><br>
  第二步,引入JS
  <code>
    <script src="js/jquery-1.11.3.min.js"></script> <br>
    <script src="js/tableCheckbox.js"></script> <br>
  </code>
  第三步,调用tableCheck
  <code>$selecter.tableCheck()</code>
<hr>
   例子:选中行class为“warning”
  <table class="table table-bordered table-striped" id="myTable">
    <thead>
    <th style="width:20px;"><input type="checkbox"></th>
      <th>编程语言</th>
        </thead>
    <tbody>
      <tr>
        <td><input type="checkbox"></td>
        <td>C</td>
      </tr>
      <tr>
        <td><input type="checkbox"></td>
        <td>Java</td>
      </tr>
      <tr>
        <td><input type="checkbox"></td>
        <td>PHP</td>
      </tr>
      <tr>
        <td><input type="checkbox"></td>
        <td>JavaScript</td>
      </tr>
      <tr>
        <td><input type="checkbox"></td>
        <td>C++</td>
      </tr>
      <tr>
        <td><input type="checkbox"></td>
        <td>Python</td>
      </tr>
    </tbody>
  </table>
  调用方法:<code>$("#myTable").tableCheck("warning");</code><br>
  <code>$selecter.tableCheck()</code>括号内为选中行的class,可自定义,example中使用的是Bootstrap,可用的class有 <code>waring</code>、<code>info</code>、<code>success</code>
  <script src="js/jquery-1.11.3.min.js"></script> 
  <script src="js/tableCheckbox.js"></script> 
  <script>
  $("#myTable").tableCheck("warning");
</script> 
</div>
</body>
</html>

css:

<link rel="stylesheet" href="css/bootstrap.min.css">

 

js:

(function($){
	$.fn.tableCheck = function(allCheckboxClass){
		var allCheck = $(this).find("th").find(':checkbox');
		var checks = $(this).find('td').find(':checkbox');
		var defaults = {
			selectedRowClass:"active",
		}
		var settings = $.extend(defaults,allCheckboxClass);
		if(allCheckboxClass)
			settings.selectedRowClass = allCheckboxClass;
		/*所有checkbox初始化*/
		$(this).find(":checkbox").prop("checked",false);
		/*全选/反选*/
		allCheck.click(function(){
			var set = $(this).parents('table').find('td').find(':checkbox');
			if($(this).prop("checked")){
				$.each(set,function(i,v){
					$(v).prop("checked",true);
					$(v).parents('tr').addClass(settings.selectedRowClass);
				});
			}else{
				$.each(set,function(i,v){
					$(v).prop("checked",false);
					$(v).parents('tr').removeClass(settings.selectedRowClass);
				});
			}
		});

		/* 监听全选事件 */
		checks.click(function(e){
			e.stopPropagation();//阻止冒泡
			var leng = $(this).parents("table").find('td').find(':checkbox:checked').length;
			/*勾选后该行active*/
			if($(this).prop('checked')){
				$(this).parents('tr').addClass(settings.selectedRowClass);
			}else{
				$(this).parents('tr').removeClass(settings.selectedRowClass);
			}
			if(leng == checks.length){
				allCheck.prop('checked',true);
			}else{
				allCheck.prop("checked",false);
			}
		});
		/*点击table触发复选框*/
		$(this).find("td").click(function(){
			var _tr = $(this).parents('tr');
			_tr.find(":checkbox").trigger("click");
		});
	}
})(jQuery);

  

posted @ 2017-12-21 12:00  ghfjj  阅读(859)  评论(0编辑  收藏  举报