3

その子の 1 つがクラス「アクティブ」を持っている場合、親リスト項目に「アクティブ」のクラスを追加しようとしています。

現在のhtml:

<ul class="top">
  <li class="parent"><a href="#">Link1</a>
    <ul class="drop">
      <li class="active"><a href="#">Link1-1</a></li>
      <li><a href="#">Link1-2</a></li>
      <li><a href="#">Link1-3</a></li>
    </ul>
  </li>
  <li><a href="#">Link2</a></li>
  <li class="parent"><a href="#">Link3</a></li>
</ul>

現在のJQuery:

if($('ul.top li ul.drop li').hasClass('active')) {
            $('ul.top li.parent').addClass('active');
    } 

</p>

</p>

http://jsfiddle.net/FmT52/を参照して、どこまで到達したかを確認してください。

私はそれを半分行うことができましたが、Jqueryを使用して「アクティブ」のクラスをすべての最上位リスト項目に追加する限りです。

いつものように、どんな助けも大歓迎です。

4

3 に答える 3

3

これで試してみてください:

$('li.active').parent().closest('li.parent').addClass('active');

フィドルをチェックアウト:http://jsfiddle.net/FmT52/8/

于 2012-12-13T16:32:22.623 に答える
3

すべてをループしてli's、クラスをclosest parent ul

$('ul.top li').each(function(){
    var $this = $(this);
    if($this.hasClass('active')){
        $this.closest('li.parent').addClass('active');
    }        
});

フィドルをチェック </p>

于 2012-12-13T16:28:24.313 に答える
0

もっと簡単にできます:

 $('ul.top li.parent:has(.active)').addClass('active');
于 2012-12-13T16:19:21.510 に答える