jQuery实现表格点击行(tr)选中复选框

主要Js代码:
 $(".list tr").slice(1).each(function(){

  var p = this;

  $(this).children().slice(1).click(function(){

   $($(p).children()[0]).children().each(function(){

    if(this.type=="checkbox"){

     if(!this.checked){

      this.checked = true;

     }else{

      this.checked = false;

     }

    }

   });

  });

 });

1)只要table 的 class="list" ,就能实现该功能

2)$(".list tr").slice(1).each 意思是不要对表列头添加事件

3)$(this).children()..slice(1)是核心 主要为了过滤掉复选框所在的td的点击,否则在点复选框时将会起冲突

示例代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

<style type="text/css">

.seldColor{

 background-color:#FF0000;

}

</style>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>

<script type="text/javascript">

$(document).ready(function(){

 $(".list tr").slice(1).each(function(){

  var p = this;

  $(this).children().slice(1).click(function(){

   $($(p).children()[0]).children().each(function(){

    if(this.type=="checkbox"){

     if(!this.checked){

      this.checked = true;

      //$(p).children()[0].style.backgroundColor="#FFCC80";

      $(this).parent().parent().addClass("seldColor");

     }else{

      this.checked = false;

      //$(p).children()[0].style.backgroundColor="#FFFFFF";

      $(this).parent().parent().removeClass("seldColor");

     }

    }

   });

  });

 });

});

</script>

</head>

<body>

<table align="center" width="90%" border="1" class="list">

 <tr><td width="20"><input type="checkbox" /></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>

 <tr><td width="20"><input type="checkbox" /></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr>

 <tr><td width="20"><input type="checkbox" /></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr>

 <tr><td width="20"><input type="checkbox" /></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr>

 <tr><td width="20"><input type="checkbox" /></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr>

 <tr><td width="20"><input type="checkbox" /></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr>

</table>

</body>

</html>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>jquery</title> <style type='text/css'>  .tr1{     background:blue;  }  .tr2{     background:green;  }  .hand{   cursor:hand;  } </style> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script> <script type="text/javascript">  var form_sub= new Function();  var check_all=new Function();  var box_value='';  $(document).ready(function (){   $("#t1").find("tr").addClass("hand");//为tr添加样式,鼠标移上去成手的形状   //循环每个tr行,添加click事件   $("#t1").find("tr").live("click",function (){    if(this.rowIndex==0)return;//标题行不作任何操作    if($(this).find("input").attr("checked")=='checked'){//已选中的行 取消选中     $(this).find("input").attr("checked",false);     $(this).removeClass("tr1");//删除行样式     $(this).removeClass("tr2");    }else{//未选中的行,进行选中     $(this).find("input").attr("checked",true);     if(this.rowIndex%2==0){//判断奇、偶行数,添加不同的样式class      $(this).addClass("tr1");     }else{      $(this).addClass("tr2");     }    }   });

  //表单提交时,取到所有选中checkbox值   form_sub= function (){    $("input[type='checkbox'][name='box']").each(function(){     if(this.checked){      box_value+=this.value+",";     }    });

   alert("checbox's value = ("+box_value+")");    }

  //全选   check_all =function (obj){    $("input[type='checkbox'][name='box']").attr("checked",obj.checked);   }      }); </script> </head> <body> <table id='t1' width="50%" align='center' border='1' cellpadding='0' cellspacing='0'>   <tr><td><input type='checkbox' name='box1' id='box1' value='' onclick='check_all(this)'/></td><td>名称 </td><td>年龄</td></tr>   <tr><td><input type='checkbox' name='box'  value='1'/></td><td>checkbox1</td><td>10</td></tr>   <tr><td><input type='checkbox' name='box' value='2'/></td><td>checkbox2</td><td>20</td></tr>   <tr><td><input type='checkbox' name='box' value='3'/></td><td>checkbox3</td><td>30</td></tr>   <tr><td><input type='checkbox' name='box' value='4'/></td><td>checkbox4</td><td>40</td></tr> </table> <p> <input style="margin-left:650px;" type='button' onclick='form_sub()' value='提交'/>

</body> </html>

其他参考:JQuery点击行(tr)实现checkBox选中 http://www.cnblogs.com/zhuiyi/archive/2011/06/29/2092836.html

转载于:https://my.oschina.net/junn/blog/109021

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值