2013-01-06 76 views
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> 

我正在尋找一種方式,保持航向該表中選擇一排,但其所有的兄弟姐妹隱藏,在這個例子中,heading2不會被選中,因爲只有一行是隱藏的。

回答

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

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

+0

謝謝,就是這樣。 – Zed

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

我認爲這應該這樣做:

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

http://jsfiddle.net/4fpgs/

+0

這是一個很好的答案。 –

+0

@KevinBowersox謝謝。只是看起來稍微有效一些,以檢查是否有人可見,而不是全部隱藏。 –

+0

我喜歡你在過濾器函數中如何加強父項。 –