私は多くの場所を検索しましたが、適切な方法を見つけることができませんでした。
テーブルの構造は次のとおりです。
<tr class="header">
<td colspan="9">Header 1</td>
</tr>
<tr class="filter">
<td>lorem ipsum</td>
<td>lorem ipsum</td>
<td>lorem ipsum</td>
<td>lorem ipsum</td>
<td>lorem ipsum</td>
<td>lorem ipsum</td>
<td>lorem ipsum</td>
<td>lorem ipsum</td>
<td>lorem ipsum</td>
</tr>
<tr class="filter">
<td>lorem ipsum</td>
<td>lorem ipsum</td>
<td>lorem ipsum</td>
<td>lorem ipsum</td>
<td>lorem ipsum</td>
<td>lorem ipsum</td>
<td>lorem ipsum</td>
<td>lorem ipsum</td>
<td>lorem ipsum</td>
</tr>
<tr class="header">
<td colspan="9">Header 2</td>
</tr>
不要な行を (入力ボックスで) フィルタリングするために、ライブ テーブル フィルター プラグイン (フィルター クラスを持つ td 要素に影響を与える) を使用しています。
ご想像のとおり、プラグインはすべてtr.filter
の要素を検索し、一致しない場合はフィルター クラスの行を非表示にします。
ただし、すべてのtr.filter
要素が非表示になった後でも、ヘッダー行は引き続き表示されます。
だから私はそれが欲しいです:すべての要素がこの要素を非表示にする次の要素まで非表示になっているかどうか、すべての要素を
確認してください。例: ヘッダー1行とヘッダー 2行
の間に表示される tr 要素がない場合、ヘッダー 1行も非表示になります。tr.header
tr.filter
tr.header
tr.header
私はこれについて次のことを試みましたが、成功しませんでした:
$('tr.header').each(function(){
if ($(this).nextUntil("tr.header").is(":hidden")){
//i tried if ($(this).nextUntil("tr.header").css('display') == 'none'){
$(this).hide();
} else {
$(this).show()
}
});