【问题标题】:How to add selected class to home page (href="/")如何将所选课程添加到主页(href="/")
【发布时间】:2012-08-24 08:51:20
【问题描述】:

好吧,我可以使用

将所选类添加到菜单中的父级 li 项目中
$(function(){
   var path = location.pathname.substring(1);
   if ( path )
     $('#main-menu a[href$="' + path + '"]').parent('li').addClass('selected');
});

但它不适用于带有href="/" 的主页。 当它也处于活动状态时,如何更改此功能以添加所选类到主页? 谢谢。

【问题讨论】:

    标签: jquery menu selecteditem pathname


    【解决方案1】:

    编辑基于有关您的 URL 格式的新信息,我会这样做:

    $(function() {
        $('#main-menu a').filter(function() {
            return this.href === location.href;
        }).parent('li').addClass('selected');
    });
    

    使用.filter 函数并比较.href 属性 会检查完整的URL,而不是检查href 中可能出现的相对URL 属性。

    【讨论】:

    • 如果我这样做,最后我所有的父母 li 都会被选中,而不仅仅是 li 的 href="/"
    • @moto 你所有其他的href都以/结尾,然后呢?也许您应该使用“完全匹配”,而不是“以”结尾?
    • 是的,都是以/结尾的,比如href="/travel/"、href="/team/",首页有href="/"
    • @moto 对,所以如果你只使用 'href=' 而不是 'href$=' 我认为它会起作用。实际上,如果您这样做,则根本不需要获取子字符串,只需直接使用location.pathname即可。
    • 谢谢你,我试过你的功能,它工作!但我想我应该早点写一下,我的一个 li 有外部 url a href="http://...",所以现在选择的类有主页和带有外部 url 的博客页面。
    猜你喜欢
    • 1970-01-01
    • 2018-08-03
    • 2020-10-14
    • 1970-01-01
    • 2011-01-08
    • 2016-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多