1

最初の列がチェックボックスであるHTMLテーブルがあり、テーブルの上に「すべてチェック」というハイパーリンクがあります。これをクリックすると、テーブルの各行をループして、その行に割り当てられたチェックボックスをオンにする必要があります。テーブルはページロード「Databind」で作成されます。

これは、これまでのところ、「すべてチェック」リンクから呼び出している私のjQueryです。

$('#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 に答える