Well, I can add the selected class to my parent li item in menu by using

$(function(){
   var path = location.pathname.substring(1);
   if ( path )
     $('#main-menu a[href$="' + path + '"]').parent('li').addClass('selected');
});

But it doesn't work for my home page with href="/". How can I change this function to add selected class to home page when it's active as well? Thanks.

有帮助吗?

解决方案

EDIT based on the new information about your URL formats, I would go for this:

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

Using the .filter function and comparing the .href property does the check on the full URL, rather than on the relative URLs that can appear within the href attribute.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top