0

次の構造のhtmlテーブルがあります。

<table>
<tbody>
  <tr><th>heading1</th></tr>
  <tr style="display: none"> <td>data1</td></tr>
  <tr style="display: none"> <td>data1</td></tr>
</tbody>

<tbody>
  <tr><th>heading2</th></tr>
  <tr> <td>data1</td></tr>
  <tr style="display: none"> <td>data1</td></tr>
</tbody>
</table>

そのテーブルで見出しを保持しているが、すべての兄弟が非表示になっている行を選択する方法を探しています。この例では、1つの行のみが非表示になっているため、heading2は選択されません。

4

3 に答える 3

2

私はこれがすべきだと思います:

$("th").filter(function(){
    return !$(this).parent().nextAll().is(":visible");
});

http://jsfiddle.net/4fpgs/

于 2013-01-06T22:32:53.277 に答える
1
var tr = $('tr:first-child').filter(function() {
  return $(this).siblings(':hidden').length == $(this).siblings().length;
});

例: http: //jsfiddle.net/u6Qj5/1/

于 2013-01-06T22:33:40.807 に答える
0
$('table th').filter(function() {
  var $tr = $(this).parent().siblings('tr');
  return $tr.filter(':hidden').length == $tr.length;
}).parent();
于 2013-01-06T22:30:00.447 に答える