1

200 行のテーブルがあり、これは 20 ページ (各ページに 10 行) に分割されています。これらの各行には、チェック ボックスがあります。私はjPageを使用しているので、すべてのテーブルがまだそこにあり、「display:none」によってのみ非表示になります。次のようなすべてのチェックボックスを選択する関数を作成しました(いくつかの以前の条件が添付されています)。

$('#masterCbox').click(function () {
  if($(this).is(':checked')) {
    $('.childCbox').prop('checked', false);
    $('.select-y').children('.childtd').children('.childCbox').prop('checked', true);
  } else 
    $('.childCbox').prop('checked', false);
});

これにより、class="select-y" を持つすべての行がチェックされます。

ただし、画面上のチェック ボックスのみをオンにする必要があります (チェック ボックスは表示ページの行に属します)。どうすればそれを達成できますか?

4

4 に答える 4

1

JQuery で :visible セレクターを使用して、何かが表示されているかどうかを確認できます。

于 2013-02-18T17:10:03.470 に答える
1

.select-y表示されているかどうかを確認し、すべてのchildren()ものではなく、どこかに一致する親があるかどうかを確認します。

$('#masterCbox').click(function () {
   if( this.checked ) {
       $('.childCbox').prop('checked', false).filter(function() {
           return $(this).is(':visible') && $(this).closest('.select-y').length;
       }).prop('checked', true);
  } else {
       $('.childCbox').prop('checked', false);
  }
});
于 2013-02-18T17:10:04.687 に答える
0

フィルターを適用して、行が表示されているかどうかを確認できます。

  $('.select-y').is(':visible').children('.childtd').children('.childCbox').prop('checked', true);
于 2013-02-18T17:10:25.460 に答える
0

あなたはこれを行うことができます:

$('.select-y .childtd').children('.childCbox:visible').prop('checked', true);
于 2013-02-18T17:12:49.850 に答える