选择特定表的所有复选框,不带任何表ID

时间:2014-10-11 11:34:10

标签: javascript jquery dom

我在一个页面中有3个表格,并作为折叠和展开功能排列。所以我想实现"选择ALL"对表的功能,表行包含复选框。如果我单击"选择全部",它应该选择特定的表复选框而不是其他2个表复选框。

这里的问题是,这3个表格不包含表格ID和Select ALL"将在每个表(thead)中存在。如果我选择"选择全部"对于第一个表,它应该选择第一个表行复选框,依此类推其他2个表

那么有没有办法可以实现没有表id并选择动态表行复选框?

赞赏你的答案。

感谢。

2 个答案:

答案 0 :(得分:2)

假设选择全部' checkbox具有类名'selectAll',位于表本身内:

$('input.selectAll').change(function(){
    var all = this;
    $(this).closest('table').find('input[type="checkbox"]').prop('checked', all.checked);
});



$('input.selectAll').change(function() {
  var all = this;
  $(this).closest('table').find('input[type="checkbox"]').prop('checked', all.checked);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
    <tbody>
        <tr>
            <td><input type="checkbox" class="selectAll" />Select All</td>
        </tr>
        <tr>
            <td><input type="checkbox" /></td>
        </tr>
        <tr>
            <td><input type="checkbox" /></td>
        </tr>
        <tr>
            <td><input type="checkbox" /></td>
        </tr>
        <tr>
            <td><input type="checkbox" /></td>
        </tr>
    </tbody>
</table>
<table>
    <tbody>
        <tr>
            <td><input type="checkbox" class="selectAll" />Select All</td>
        </tr>
        <tr>
            <td><input type="checkbox" /></td>
        </tr>
        <tr>
            <td><input type="checkbox" /></td>
        </tr>
        <tr>
            <td><input type="checkbox" /></td>
        </tr>
        <tr>
            <td><input type="checkbox" /></td>
        </tr>
        <tr>
            <td><input type="checkbox" /></td>
        </tr>
    </tbody>
</table>
<table>
    <tbody>
        <tr>
            <td><input type="checkbox" class="selectAll" />Select All</td>
        </tr>
        <tr>
            <td><input type="checkbox" /></td>
        </tr>
        <tr>
            <td><input type="checkbox" /></td>
        </tr>
        <tr>
            <td><input type="checkbox" /></td>
        </tr>
        <tr>
            <td><input type="checkbox" /></td>
        </tr>
        <tr>
            <td><input type="checkbox" /></td>
        </tr>
    </tbody>
</table>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

是。使用eq()按索引获取表。索引从0

开始
$('table').eq(0); // selects first table
$('table').eq(1); // selects second table and so on...