0

我有这个 jquery 代码来突出显示与浏览器中当前页面相对应的菜单项:

    $(document).ready(function (){

    $("ul#nav a").each(function (){

    var hrefWindow = $(this).attr("href");

    if (hrefWindow == window.location.href.match(/[^/]+$/g)) {
        $(this).parent().addClass("active");
    }
    else {
        $(this).parent().removeClass("active");
    };        
});      
})

如您所见,表达式正在寻找我的网址中斜杠之后的字符串,例如:

www.mywebsite.com/thisStringWillBeFoundByExpression ,

一切正常,但是当我第一次输入我的域地址时出现了一个小问题,因为地址栏中只有 www.mywebsite.com(斜杠后没有 index.htm),而且我的表情找不到任何东西。

如果地址栏中只有 www.mywebsite.com,如何修改我的代码以将类“活动”添加到 index.htm?

4

1 回答 1

1

我建议使用location.pathname而不是解析href

var path = location.pathname.substring(1);

$(this).parent().toggleClass("active", !hrefWindow || path === hrefWindow);

参考: https ://developer.mozilla.org/en-US/docs/DOM/window.location#Properties

于 2013-02-15T20:34:37.707 回答