現在のページにクラスを追加する方法について多くの回答を見てきましたが、それらはすべて JQuery を使用しています。
メニューには 2 つのレベルがありますが、クラスを最初のレベルの li タグにのみ適用したいと考えています。したがって、次の例では、ブログ ページ 2 がブログ li でアクティブであることを示します。
メニュー構造:
<nav id="main_menu">
<ul>
<li><a href="index">HOME</a></li>
<li><a href="blog">BLOG</a>
<ul>
<li><a href="1">1</a></li>
<li><a href="2">2</a></li>
</ul>
</li>
<li><a href="contact">CONTACT</a></li>
</ul>
</nav>
私はこれを機能させましたが、常に変化する配列番号を使用しています。
var node = document.getElementById("main_menu").getElementsByTagName("li")[0];
node.setAttribute("class", "active");
最上位の li は同じままですが、2 番目のレベルが変更されます。
配列番号を付けずに同じコードを実行したり、孫なしで ul の息子を使用したりすることはできますか?
JQueryを使用せずに、現在のページに基づいて動的にするにはどうすればよいですか? 一部のページでは、クラスを父の li タグに適用する必要があります。