如何使jQuery活动状态忽略大写或小写以进行URL检测

时间:2014-01-30 19:39:25

标签: javascript jquery navigation

这是我的活动状态工作的代码,问题是区分大小写。例如,假设您单击其中一个菜单选项卡,您可以使活动状态正常工作,但如果您尝试手动更改网址而不是让我们说大写,那么它将无效。

如何使脚本工作,以便在再次检查URL中的内容时不考虑区分大小写?

全部谢谢!

$(document).ready(function() {
    $("ul#menu li a").wrapInner("<span></span>");
    $("ul#menu li a span").css({
        "opacity": 0
    });
$("ul#menu li a").hover(function() {
    $(this).children("span").animate({
        "opacity": 1
    }, 400);
}, function() {
    $(this).children("span").animate({
        "opacity": 0
    }, 400);
});
}); /**ACTIVE STATE SCRIPT**/
$(function() {
    var pathname = window.location.pathname;
    var page = pathname.match(/\/([^\/]+\.[^\/]+)/i)[1];
    var target = $('#menu a').filter(function() {
    console.log($(this).attr('href'), page);
    return $(this).attr('href').toLowerCase().indexOf(page.toLowerCase()) > -1;
});
    $(target).addClass('active');
});

1 个答案:

答案 0 :(得分:1)

首先,将你的正则表达式更改为:

var page = pathname.match(/\/([^\/]+\.[^\/]+)/i)[1];

然后你的选择器:

var target = $('#menu a').filter(function(){
    return $(this).attr('href').toLowerCase().indexOf(page.toLowerCase()) > -1;
});