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 .childtd').children('.childCbox:visible').prop('checked', true);
于 2013-02-18T17:12:49.850 回答
0

您可以应用过滤器来检查您的行是否可见:

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