1

私は 3 レベルの深いメニューを持っています。私が望むのは、アクティブなクラスが親 li に移動することです。以下のコードは 2 つのレベルで機能し、一番上のメニュー項目がアクティブで、その下のメニュー項目が表示されますが、ページに移動すると3 番目のレベル (ul ul ul li) では、最後の ul メニューのすべてのリスト項目がアクティブになります。何か案は。私はjQueryを初めて使用するので、親切にしてください;-)

$(document).ready(function(){
  var path = location.pathname.substring(1);
  if ( path ) {
   $('#main_menu li a[href$="' + path + '"]').parents('li').addClass('active');
  }
});
4

2 に答える 2

1

現在の親よりも上位の親に移動する場合は、.parents('li')。parents('li')を実行できます。上位の親にクラスがある場合、たとえば<li class="grandparents">.closest('。grandparents')を使用できます

于 2012-11-25T16:11:46.400 に答える
1

編集:ああ、あなたは最も古い祖先が欲しいので、parents()の後にlast()を追加してください。

$('#main_menu li a[href$="' + path + '"]').parents('li').last().addClass('active');
于 2012-11-25T16:28:36.730 に答える