【发布时间】:2018-08-27 01:21:34
【问题描述】:
假设我有以下主菜单结构,如果部分 url 与菜单链接匹配,我需要将类活动类添加到导航
例如
www.domain.com/en/blog/this-is-firt-blog 在这种情况下,我需要将 active 类添加到名称中的第二项 /blog
<div class="wrapper">
<ul>
<li><a href="/en/">Home</a></li>
<li><a href="/en/blogs/" >All Blogs</a></li>
<li><a href="/en/videos/" >All Videos</a></li>
<li><a href="/en/contact/" >Contact Us</a></li>
</ul>
</div>
https://codepen.io/anon/pen/aYBzRd
我使用下面的代码来匹配 url 的部分 /blog 但这段代码将活动类添加到所有菜单项
$(".wrapper li a").first().removeClass("active-menu");
var pathnameurl = window.location.pathname;
if (pathnameurl.indexOf('/blog') != -1) {
// alert("match");
$(".wrapper li a").each(function (index, element) {
$(element).addClass("active");
});
}
else
{
alert("nomatch");
}
我尝试使用$(this).addClass("active");,但这也为所有菜单项添加了活动类
【问题讨论】:
-
路径名是否总是以 /en/blog 或 /en/video 或 /en/contact 开头?
-
它可以是
/en/blog/或/ar/blog/或/es/blog因为这个原因我试图只匹配/blog部分 -
但是你也可以有像 /en/video 或 /es/contact 这样的路径吗?
标签: javascript jquery html