javascript - 如何根据 url 添加“活动”类到下拉列表
问题描述
我当前的网址是http://localhost/app/home
,我有这个导航:
<li class="dropdown">
<a href="#" class="nav-link has-dropdown" data-toggle="dropdown">
<i class="fas fa-list"></i>
<span>Outlook</span>
</a>
<ul class="dropdown-menu" style="display: block;">
<li><a class="nav-link" href="/home"><span>Sales</span></a></li>
<li><a class="nav-link" href="/"><span>Product</span></a></li>
<li><a class="nav-link" href="/"><span>Channel</span></a></li>
</ul>
</li>
我所期望的:
<li class="dropdown active">
<a href="#" class="nav-link has-dropdown" data-toggle="dropdown">
<i class="fas fa-list"></i>
<span>Outlook</span>
</a>
<ul class="dropdown-menu" style="display: block;">
<li class="active"><a class="nav-link" href="/home"><span>Sales</span></a></li>
<li><a class="nav-link" href="/"><span>Product</span></a></li>
<li><a class="nav-link" href="/"><span>Channel</span></a></li>
</ul>
</li>
我需要active
在下拉列表中添加一个类li
,并ul li
基于当前 URL。jQuery有什么简单的解决方案吗?
解决方案
您可以使用此功能检查 href 属性是否在当前 URL 中。
$(".dropdown-menu a").each(function() {
let href = $(this).attr('href');
if (window.location.href.indexOf(href)) {
$(this).parent('li').addClass('active');
}
});
请注意,'/' 将始终为真。
推荐阅读
- excel - 在同一窗口中使用不同的 VBA 代码时出现编译错误
- blazor - 在 Blazor WebAssembly 中,如何编写警告或信息?
- regex - 从相同的字符对之间的文本中去除字符串(使用正则表达式或其他方式)
- python - 熊猫转轴和分组?
- firebase-cloud-messaging - 将来自每个聊天室的 fcm 消息单独分组
- xcode - 使用 Xcode 在 iPhone 上运行应用程序时出现问题
- reactjs - 为什么 ReactJS 组件的 handleChange 方法出现 setState undefined 错误?
- javascript - SyntaxError:提取 API 中的输入意外结束
- python-3.x - 为什么使用 python3 google analytics v4 时 ga:clientId 维度请求返回空数组?
- security - 微前端如何使用 Apache Wicket 工作?