2011-10-28 11 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>がある場合、私はリンクに半径を持たせたくありません。それは<li>をターゲットだ以外

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

それは正常に動作しますが、私はそれが子供<a>を対象とし、その半径を削除する必要があります。

は、私は現在、これはjQueryを使用しています。

ご協力いただければ幸いです。

答えて

7

はこの表現を試してみてくださいあなたは、サブアイテムが国境半径を持ってしたくない場合は、>中を削除しますクエリ。

+0

完全に働きました。素早く素晴らしい答えに感謝します。 – scferg5

1

は、私はあなたが.findをしたいと思う:

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

編集:

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

はちょうど李内側のを見つける必要がある:ここ

$("li").has("ul").find('a').addClass("sub-radius"); 

はフィドルです: http://jsfiddle.net/cBfMV/

2

これはあなたのHTML

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

のために働く必要がありますあなたはjQueryのを必要としませんここでは、CSSだけでそれを達成できます。ただ、:only-child擬似クラスを使用します。

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

ライブデモ:​​