为了账号安全,请及时绑定邮箱和手机立即绑定

jQuery在菜单上添加class .active

jQuery在菜单上添加class .active

Qyouu 2019-08-27 13:32:21
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'元素。我正在尝试很多解决方案,但没有任何效果。
查看完整描述

3 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

点击这里查看jsFiddle中的解决方案

你需要的是你需要获得所提到的window.location.pathname,然后从中创建regexp并根据导航hrefs进行测试。

$(function(){

    var url = window.location.pathname, 
        urlRegExp = new RegExp(url.replace(/\/$/,'') + "$"); // create regexp to match current url pathname and remove trailing slash if present as it could collide with the link in navigation in case trailing slash wasn't present there
        // now grab every link from the navigation
        $('.menu a').each(function(){
            // and test its normalized href against the url pathname regexp
            if(urlRegExp.test(this.href.replace(/\/$/,''))){
                $(this).addClass('active');
            }
        });});


查看完整回答
反对 回复 2019-08-27
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

对我来说更简单的方法是:

var activeurl = window.location;$('a[href="'+activeurl+'"]').parent('li').addClass('active');

因为我的链接转到绝对网址,但如果您的链接是相对的,那么您可以使用:

 window.location**.pathname**


查看完整回答
反对 回复 2019-08-27
  • 3 回答
  • 0 关注
  • 857 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信