2012-03-11 26 views
0

我有一個佈局,看起來像這樣顯示DIV> SPAN當DIV> TABLE> TR纔可見

<div class="categoery"> 
    <span>categorie title</span> 
    <table> 
     <tr class="item show">....</tr> 
     <tr class="item show">....</tr> 
     <tr class="item none">....</tr> 
    </table> 
</div> 

<div class="categoery"> 
    <span>categorie title</span> 
    <table> 
     <tr class="item none">....</tr> 
     <tr class="item none">....</tr> 
     <tr class="item none">....</tr> 
    </table> 
</div> 

現在我想的是以下幾點。第一個div將是類別標題和兩行。

現在在第二個div中,我希望整個div完全隱藏。

CSS沒有像父親那樣的子對象:div < tr.none{ display:none; }

我推斷我可以使用的另一件事是從jQuery的hasClass,但我想知道是否有一個純粹的CSS approuch。

==

也許像設置div來高度:具有頂部餘量將迫使div來擴大0,但塊元件(TR)??

希望這是有道理的。

回答

0

你可以做這樣的事情

$('.categoery').each(function(k,v) { 
    if($(this).children('table').find("tr").css("display")=='none') { 
    // alternate 
    //if($(this).children('table').find("tr").hasClass("none")) { 
     $(this).children('span').hide(); 
    } 
}); 

我甚至創造了一個demo。我希望這是要求的。

+0

是的,這是怎麼樣的我現在使用的代碼。但是我正在處理大型數據集,這些代碼(每個/查找)只需要很多處理。我一直在尋找頂級的css解決方案,不必每次都循環遍歷整個數據集。應該添加這個問題。但是,感謝代碼,如果沒有更好的代碼,我會使用它。 – 2012-03-11 15:01:34

+0

@SaifBechan如果是這樣的話,緩存查找的結果 – vol7ron 2012-03-11 15:06:46

+0

@SaifBechan在數據集循環中放入一些邏輯,以便將類添加到容器以及行 – charlietfl 2012-03-11 15:49:51

0

$('tr.none').closest('.categoery').css('display','none');

0

這不是很清楚什麼隱藏/顯示規則。以下將隱藏類別和只顯示那些在他們有一流的「秀」一把TR

$('.categories').hide().filter(':has(tr.show)').show() 

可以通過使用CSS刪除隱藏(),但再一次,規則不是很清楚