2012-09-25 56 views
0

我有example (js-fiddle) 我想隱藏所有TBODY元素,不包含元素的TR元素,而類「day_label」和「隱藏」 在此〔實施例,我有所有元素一天中的統計數據,如果一天中沒有任何記錄,我需要整天隱藏。隱藏與CSS不包含{}選擇

+1

隱藏了'tbody'不包含'TR ''day_label'類? –

+0

在你的例子中,你想隱藏哪些行? –

+0

在例子中,我需要隱藏tbody爲「昨日」和「9月23日」 – user1081056

回答

2

你想要的基本上是一個CSS父母選擇器(tr.hide < tbody { display: none; }​),這還不存在。 (!很快)然而,這可以很容易地與像jQuery庫完成:

$("tbody").each(function() { 
    if ($(this).children("tr:not(.hide):not(.day_label)").length) { //Not 0 
     $(this).addClass("show"); 
    } 
});​ 

CSS:

tbody { display: none; } 
tbody.show { display: block; }​ 

演示:http://jsfiddle.net/SO_AMK/RqBCY/

+0

看起來和我解決這個問題的方式完全一樣^ ____ ^ – user1081056

1

不知道你的意思,但你可以隱藏所有的行,然後展示相關的行:

tbody tr { display:none; } 
tbody tr.day_label { display: block; } 
+0

不起作用。 \t 在例子中,我需要隱藏tbody的「昨日」和「23日」 – user1081056

+0

像@pebbl已經提到,你試圖做的是不可能的只是CSS,你可能想要使用javascript或更改你的html –

+0

+1 @AbePetrillo - 對於許多父母和孩子的css問題,這絕對是一個很好的答案。 – Pebbl

2

有效地選擇基於它的孩子父母 - 你問 - 是不是可能與CSS (在這個特定的冰凍時刻)

你有三樣)選項:

  1. 當生成的HTML(無論是與服務器端語言或JS)與描述孩子的狀態類生成你的父母。這樣您可以直接定位父項。

  2. 使用JavaScript來定位你的父母,然後計算它是否有合適的孩子。如果是這樣,則應用一個添加所需樣式的className。

  3. 對於其他情況,您也可以按照Abe Petrillo的說法進行操作 - 即反轉您的邏輯並僅在找到特定選擇器時啓用。不過,我相信這不會對你所要做的事情起作用,因爲它涉及比可以實施的更爲複雜的「條件邏輯」。

+0

我認爲我必須使用html)謝謝。 – user1081056