2012-03-13 16 views
9

されるHTML:私はクリックした李にそれがaddClass「は現在の」意志「」リンクを押すと、古いのliクラスを削除する場合ときのLi内部ここをクリック

<ul>  
    <li class="current"><a href="#">menu item</a></li> 
    <li><a href="#aba">menu item</a></li> 
    <li><a href="#abb">menu item</a></li> 
    <li><a href="#abc">menu item</a></li> 
    <li><a href="#abd">menu item</a></li> 
</ul> 

? これは私の試みです:

$('ul li a').click(function(){ 
    $('ul li').removeClass('current'); 
    ... don't know here (add class to current li) ... 
}); 
+0

jQueryの読み込み価値がある素晴らしいドキュメントがあります。http://api.jquery.com/category/traversing/ –

+0

NVMは、それは感謝ロブ – test

答えて

29

使用.parent('li')または.closest('li')クリック<li>を選択します。

$('ul li a').click(function() { 
    $('ul li.current').removeClass('current'); 
    $(this).closest('li').addClass('current'); 
}); 
+0

おかげで – test

0

ただ、この意志はあなたのために働く希望、そう...

$(this).addClass('yourClass'); 
+1

'this'がうまく働いてしまいました''要素です。 –

6

使用。

2

ロブが正しいですが、 $('ul li.current').removeClass('current');は私のためには機能しませんでした。 次のコードが動作します。

jQuery('ul li a').click(function() 
{ 

jQuery('ul').children().removeClass('selected'); 
jQuery(this).closest('li').addClass('selected'); 

}

関連する問題