サイドナビゲーションバー用のブートストラップテンプレートをEJSの一部として使用しています。このテンプレートは、それを使用するすべてのページに含まれています。はDashboard templateから取られました。 HTMLはどちらのリンク要素のクラスをアクティブに変更するにはどうすればよいですか?
<nav class="col-sm-3 col-md-2 hidden-xs-down bg-faded sidebar">
<ul class="nav nav-pills flex-column">
<li class="nav-item">
<a class="nav-link active" href="/profile">Overview</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/accountdetails">Account Details</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/admin">Admin</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/transactions">Transactions</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/contract">Contract</a>
</li>
</ul>
</nav>
はactive
クラスが背景に暗い青で特定のスタイルを持っています。私は今、異なるリンクにナビゲートするときにこれをプログラム的に変更したいと思っています。
私はちょうどそこに変更することができるので、彼らはすべて私がサイドバーコードをEJSの部分として含めているので、動作しませんでした。私もこの試みたanswerしかし、それは動作しませんでした(アクティブなスタイリングを点滅させるが、消える - おそらく、別のページにルーティングされているため?
プログラム的にHTML要素を変更することに関して多くの疑問がありますが、通常はdocument.getElementById
を使用しています(それぞれIDを付けたり、すべてをチェックするなど)。これを行うのがより早く正しい方法がありますか?
可能な複製(HTTPS [JavaScriptでgetElementByIdをするのではなく、getElementByClassする方法?]:// stackoverflowの.com/questions/1933602/how-to-getelementbyclass-の代わりにgetelementbyid-with-javascript) – kulaeff
初めてこの質問をしたことはありませんでした。 –
'異なるリンクにナビゲートするときにこれをプログラマチックに変更したいと思います。どのように変更したいですか? –