2013-10-15 24 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

相关问题