2013-10-15 28 views
1

我有一個cms呈現我正在設計的網站的菜單,我需要選擇父菜單項的子項。下面是代碼是如何產生的:我試圖選擇一個嵌套的UL,試圖用CSS但有麻煩

<div class="menu"> 
    <ul> 
     <li></li> 
     <li><a href="" class="CurrentButton" ... />text</a> 
       <div> 
        <ul></ul> 
       </div> 
     </li> 
    </ul> 
</div> 

我已經試過這個CSS要儘量選擇它,但它一直不成功作爲然而除了顯示:無;

.menu ul li div { 
    display: none; 
} 

.menu > ul > li > a.CurrentButton div { 
    display: block; 
} 

任何人都可以看到我做錯了什麼? jQuery的功能會更容易嗎?我對jQuery相當陌生,所以我不確定如何去爲它寫一個函數。

我想選擇裏內div時,李中的錨具有類CurrentButton,如果李內錨沒有類,那麼我想它隱藏

+3

什麼是'.menu'? – tymeJV

+0

我假設你的'.menu'是一個父div。你的第二個選擇器試圖在'a.CurrentButton'中選擇一個div。在這個應用類的錨內沒有div。該div與主播處於同一水平。 – kleinfreund

+0

它是包裹在名單上的div,我將編輯代碼 – user2596635

回答

1

的你給的例子都依賴於找到.menu元素,但沒有在你的代碼存在。它現在。

a.CurrentButton div選擇任何divs內部的任何a.CurrentButton s。但是,您的div不在a之內。試試這個:

.menu ul > li > a { 
    //selects all the as, but non of the divs 
} 

.menu ul > li > * { 
    //selects anything inside a 'li', both 'a's and 'div's 
} 

要選擇div s表示遵循a.CurrentButton S,使用此:

.menu ul li > a.CurrentButton + div { 
    //any 'div's that are directly after 'a.CurrentButton' 
} 
+0

我只需要選擇div如果錨具有類CurrentButton,它是我正在使用的cms渲染列表的唯一方式。 – user2596635

+0

@ user2596635我已經相應地更新了我的答案。 – ACarter

+1

這工作非常好!非常感謝你! – user2596635

1

如果你真的需要具體而言,使用相鄰的元件運算符(+)

.menu > ul > li > a.CurrentButton + div { 

否則,您的目標一個div是的CurrentButton後代和不存在。

如果你不需要這麼具體,使用相同的選擇像以前一樣:

.menu > ul > li > div { 
+0

我試過這個,但它沒有工作,試圖把它放在重要的位置以及沒有運氣 – user2596635

+0

你試過了哪一個? – 2013-10-15 18:13:26

+0

第一個,第二個將選擇它沒有問題,但我只需要選擇div如果錨點上有類CurrentButton,否則我希望它被隱藏 – user2596635

0

假設上面的<ul>是與類.menu元素的孩子,上面<div>不是的a.CurrentButton孩子,所以你應該這樣選擇它:

.menu > ul > li > div { 
    display: block; 
} 

只要你知道>只選擇一個元素的direct children

+0

問題是我只想選擇它,如果錨具有類.CurrentButton,這是這個特定的CMS工作的唯一方式,它吸 – user2596635

0

試試這個:

在HTML DIV是a.CurrentButton的兄弟。所以,你應該使用+標誌。

.menu ul li div { 
    display: none; 
} 

.menu > ul > li > a.CurrentButton + div { 
    display: block; 
} 
+0

這沒有奏效,我試着把!重要的顯示:塊作爲以及沒有運氣,謝謝你的回答,雖然 – user2596635

+0

我不這麼認爲。正如你的問題所顯示的HTML肯定會這樣。在這裏再次檢查您的HTML或POST。 – vinaykrsharma

相關問題