选择隐藏兄弟姐妹的表行

时间:2013-01-06 22:25:50

标签: jquery

我有一个包含以下结构的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>

我正在寻找一种方法来选择该表中包含标题的行,但其所有兄弟都被隐藏,在本例中,不会选择heading2,因为只隐藏了一行。

3 个答案:

答案 0 :(得分:2)

我认为应该这样做:

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

http://jsfiddle.net/4fpgs/

答案 1 :(得分:1)

var tr = $('tr:first-child').filter(function() {
  return $(this).siblings(':hidden').length == $(this).siblings().length;
});

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

答案 2 :(得分:0)

$('table th').filter(function() {
  var $tr = $(this).parent().siblings('tr');
  return $tr.filter(':hidden').length == $tr.length;
}).parent();