Search code examples
jquerymenuselecteditempathname

How to add selected class to home page (href="/")


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.


Solution

  • 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.