使用Jquery在行中明智地选择表中的所有复选框

时间:2015-05-11 13:59:29

标签: jquery html checkbox

我有一个脚本应该检查表格行中的所有复选框。但通过使用下面的帖子,我可以检查表格中的所有复选框。我不想要这个。我想仅以行方式检查复选框。

参考文章:

Jquery select all checkboxes in table

示例HTML代码:

<table>
<tr>
    <th>
        <input type="checkbox" id="selectAll" />
    </th>
    <th>
        hi!
    </th>
</tr>
<tr>
    <td>
        <input type="checkbox" id="1"/>
    </td>
    <td>
        hi!
    </td>
</tr>
<tr>
    <td>
        <input type="checkbox" id="2"/>
    </td>
    <td>
        hi!
    </td>
</tr>
    </table>

示例Jquery:

  $('#selectAll').click(function(e){
var table= $(e.target).closest('table');
$('td input:checkbox',table).prop('checked',this.checked);
});

请参阅以下有关我的项目的截图

  1. 点击勾选所有复选框
  2. enter image description here

    1. 选中全部选中复选框
    2. enter image description here

1 个答案:

答案 0 :(得分:1)

看起来你有选择所有复选框的重复ID。 ID必须是唯一的。您可以给同一个类选择所有复选框(比如selectAll),然后使用类选择器。

同样,对于目标最近的tr,您可以遍历到最近的tr而不是获取表元素。然后在其中找到输入复选框。像这样:

$('.selectAll').click(function(e){
  var tr= $(e.target).closest('tr');
  $('td input:checkbox',tr).prop('checked',this.checked);
});