【发布时间】:2017-08-11 14:51:30
【问题描述】:
我在 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,检查所有内容等)。有更快/正确的方法吗?
【问题讨论】:
-
这不是第一次有人问这个问题了。
-
`我现在想在导航到不同的链接时以编程方式更改它`你想如何更改它?
-
@JeremyThille 新人在发帖前从不尝试寻找旧答案。我也经常这样做;-)
-
@JasonKrs 我想我可以给每个人一个 ID,然后检查 ID 是否与页面名称匹配,但是(1)我必须为此给他们一个 ID,并且(2)会必须在每个不同的页面中包含一个脚本来进行检查。看起来工作量很大,对于我认为常用的东西,只是认为应该有一个更简单的方法。
标签: javascript html twitter-bootstrap dom