jQuery在菜单上添加class .active

jQuery在菜单上添加class .active

我有一个问题。

我想在相关页面打开时在项目菜单上添加“活动”类。

菜单很简单:

<div class="menu"><ul><li><a href="~/link1/">LINK 1</a><li><a href="~/link2/">LINK 2</a><li><a href="~/link3/">LINK 3</a></ul></div>

在jQuery中,我需要检查网址是否为www.xyz.com/other/link1/

如果是这个我想添加第一类是link1的'a'元素。

我正在尝试很多解决方案,但没有任何效果。


Qyouu
浏览 858回答 3
3回答

慕后森

点击这里查看jsFiddle中的解决方案你需要的是你需要获得所提到的window.location.pathname,然后从中创建regexp并根据导航hrefs进行测试。$(function(){ &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;url&nbsp;=&nbsp;window.location.pathname,&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;urlRegExp&nbsp;=&nbsp;new&nbsp;RegExp(url.replace(/\/$/,'')&nbsp;+&nbsp;"$");&nbsp;//&nbsp;create&nbsp;regexp&nbsp;to&nbsp;match&nbsp;current&nbsp;url&nbsp;pathname&nbsp;and&nbsp;remove&nbsp;trailing&nbsp;slash&nbsp;if&nbsp;present&nbsp;as&nbsp;it&nbsp;could&nbsp;collide&nbsp;with&nbsp;the&nbsp;link&nbsp;in&nbsp;navigation&nbsp;in&nbsp;case&nbsp;trailing&nbsp;slash&nbsp;wasn't&nbsp;present&nbsp;there &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;now&nbsp;grab&nbsp;every&nbsp;link&nbsp;from&nbsp;the&nbsp;navigation &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$('.menu&nbsp;a').each(function(){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;and&nbsp;test&nbsp;its&nbsp;normalized&nbsp;href&nbsp;against&nbsp;the&nbsp;url&nbsp;pathname&nbsp;regexp &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(urlRegExp.test(this.href.replace(/\/$/,''))){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(this).addClass('active'); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});});

杨__羊羊

对我来说更简单的方法是:var&nbsp;activeurl&nbsp;=&nbsp;window.location;$('a[href="'+activeurl+'"]').parent('li').addClass('active');因为我的链接转到绝对网址,但如果您的链接是相对的,那么您可以使用:&nbsp;window.location**.pathname**
打开App,查看更多内容
随时随地看视频慕课网APP