現在のページへのパスにあるすべての < LI > にクラス「アクティブ」が与えられる、ブートストラップ ベースの < UL > ナビゲーション ツリーがあります。したがって、ホームページの 2 レベル下のページにいた場合、コードはおおよそ次のようになります。
<ul>
<li>Link1</li>
<li>Link2</li>
<li class='active'>Link3
<ul>
<li>sublink1</li>
<li class=active>sublink2
<ul>
<li>subsublink1</li>
<li class=active>subsublink2 THIS IS MY PAGE</li>
</ul>
</li>
</ul>
</li>
問題は、ブートストラップがすべての li.active 要素に境界線を追加することです。そして、境界線を最も深いもの、つまり実際に表示しているページにのみ適用したいのです。
ブートストラップの基盤を台無しにするつもりはないので、パス全体からアクティブなクラスを削除するつもりはありません。
私の目標は、jQuery で不要な境界線を削除することです。私は、パス内で最も深い li.active であることを示す、li.active である子を持たない li.active を見つけたいと考えています。次に、li.active を持つすべての親を見つけて、それらから境界線を削除します。
その JQUERY をどのように構築しますか?
私はこのようなことを考えています(notHasClassが存在しないことを知っています):
$('li.active').children().notHasClass('active').parents.hasClass('active').css('border','none');