1

我有一个 HTML 表格,其中第一列是一个复选框,我在表格上方有一个超链接,上面写着“检查所有”,如果他们点击这个我需要遍历表格中的每一行并检查分配给该行的复选框,该表建立在页面加载“Databind”之上。

到目前为止,这是我的 jQuery,我将其从“Check All”链接中调用:

$('#HypSelectAll').click(function() {
    var count = $('#gvPerformanceResult>tbody>tr').length; //Count the amount of rows in the HTML table
    for (i = 0; i < count; i++) {

    }
});​

我现在不确定如何引用 gvPerformanceResult 列...。找到名为“chkExportToExcel”的复选框,该表可能有 1-25 行。有人可以帮我给我一个起点吗?

4

2 回答 2

5

无需手动执行循环。让 jQuery 做它的事:

$('#HypSelectAll').click(function () {
    $('#gvPerformanceResult')
       .find('input[type="checkbox"]')
       .prop('checked', true);
});

如果整个表格中还有其他复选框,并且您确实必须如此具体,请尝试以下操作:

$('#HypSelectAll').click(function () {
    $('#gvPerformanceResult')
        .find('> tbody > tr > td:first-child > input[type="checkbox"]')
        .prop('checked', true);
});

但我真的想不出一个可以保证这样的场景。如果你不得不求助于这个,你可能在你的 HTML 结构中遇到了一些更深层次的问题。

于 2012-07-31T15:29:25.900 回答
1

您不需要像那样循环,只需告诉 jQuery 查找表中的复选框并将它们标记为已选中(假设表中唯一的复选框是您希望包含在“全选”中的复选框)。

$('#HypSelectAll').click(function () {
        $("#gvPerformanceResult").find("input[type=checkbox]").prop("checked", true);
});
于 2012-07-31T15:28:36.173 回答