【发布时间】:2022-01-18 01:59:14
【问题描述】:
我希望在我的导航中基于 URL 和 ID 有活动的菜单项,不是 href。没有可用的解决方案(this one、this one 或 this one)对我有用。
我的导航是这样的
<nav id="PageNavigation">
<div class="nav_ebene_2">
<div role="button" class="nav-item" id="P_Bogendaten.aspx?IDNavi=194">
<p>menu item 1</p>
</div>
</div>
</nav>
如果单击 menu item 1,则 URL 为 https://example.de/App_AspxFiles/P_Bogendaten.aspx?IDNavi=194。我想将menuactive 类添加到父元素(包含nav_ebene_2 的div)
我需要将id 与当前网址进行比较,如果匹配,请添加menuactive。这将是我的方式,但 if 条件永远不会为真。
var currenturl = window.location.href
for (const div of document.querySelectorAll("#PageNavigation nav-item")) {
if (div.id == currenturl ) {
div.parentElement.classList.add("activemenu");
}
}
非常感谢!
【问题讨论】:
-
尽量避免
parentElement,有一天你可能想稍微改变一下你的HTML,JS会失败。使用more flexible.closest()
标签: javascript html jquery css navigation