Jquery使用复选框选择表行

时间:2011-03-25 08:47:17

标签: jquery checkbox filter html-table

我有一张桌子

<table id="rowclick2">
  <tbody>
    <tr >
      <td class="cb"><input type="checkbox" value="yes"></td>
      <td>row 1</td>
       <td>A</td>
    </tr>    
    <tr >
      <td class="cb"><input type="checkbox" value="yes" ></td>
      <td>row 2</td>
       <td>B</td>
    </tr>    
    <tr>
      <td class="cb"><input type="checkbox" value="yes"></td>
      <td>row 3</td>
      <td>C</td>  
    </tr>    
  </tbody>
</table>

我希望获取每个单元格(单击按钮时)的行,其复选框已选中

我尝试过滤

  $('#test').click(function(){

      $('#rowclick2 tr').filter(':has(:checkbox:checked)').each(
          //get row values
      );
    });

这很简单但我看不到我错过的东西......

Here是jsfiddle链接...

2 个答案:

答案 0 :(得分:39)

你快到了:)

如果您想要选中复选框的所有<td>

$('#rowclick2 tr').filter(':has(:checkbox:checked)').find('td');

E.g.

$('#rowclick2 tr').filter(':has(:checkbox:checked)').find('td').each(function() {
    // this = td element
});

更精细的example在JsFiddle上。

<强>顺便说一句
.filter(':has(:checkbox:checked)')可以写成.has(':checkbox:checked'),如果您像我一样,更容易阅读。

答案 1 :(得分:3)

您可以尝试以下代码:

$('#test').click(function(){

    $('td.cb:checked').parents('tr').each(
          //get row values
      );
}

HTH!