2011-10-28 76 views
1

我有與子菜單導航菜單通常的無序列表...jQuery的addClass的子元素

HTML:

<ul> 
    <li><a href="#">Link 1</a></li> 
    <li> 
    <a href="#">Link with submenu</a> 
    <ul> 
     <li><a href="#">Sublink 1</a></li> 
    </ul> 
    </li> 
</ul> 

所有父<li>內的鏈接具有邊框半徑。但是,如果父母<li>有孩子<ul>,我不希望鏈接有半徑。

我目前使用這個jQuery:

<script> 
    $("li").has("ul").addClass("sub-radius"); 
</script> 

它,除了它的定位的<li>工作正常,但我需要它來定位的子<a>並刪除其半徑。

任何幫助,將不勝感激。

回答

7

試試這個表達式:

$("li:has(ul) > a").addClass("sub-radius"); 

編輯:如果你不想分項有邊框半徑,消除在>查詢。

+0

完美工作。謝謝大家,快速和真棒的答案! – scferg5

1

我想你想要.find

<script> 
    $("li:has(ul)").find("a").addClass("sub-radius"); 
</script> 
2

這應該爲你的HTML工作

("li").has("ul").children("a").addClass("sub-radius"); 
5

你不需要的jQuery在這裏,你可以單獨使用CSS來實現。只需使用:only-child僞類:

a:only-child { /* define border-radius here */ } 

現場演示:​​