jQuery Highlight Navigation Menu v.02 Script

7

I have found a simpler way to add class=”selected” to any navigation menu by checking your URL path against links on the page. I’ve only tested this with page slugs in wordpress. But it works very nicely.

// Highlight Tab v.02 by Jake Rutter
// Website: http://www.onerutter.com
// Feel free to use and adapt, please just give credit where credit is due.

        jQuery(document).ready(function(){
             var path = location.pathname;
              jQuery("a[href$='" + path + "']").addClass("selected");
     });

  1. Hi, thanks for the script, I just have one problem. On the homepage all the menu items get class selected…how to select just "Home"?

  2. I found this solution to my previous comment –

    jQuery(document).ready(function(){
    var path = location.pathname;
    if(location.pathname != "/") {
    jQuery("a[href$='" + path + "']").addClass("current");
    } else $('#menu a:eq(1)').addClass('current');
    });

  3. This works great if there already is no class attribute set. But my link already has an attribute. For example class="someclass", and this snippet doesn't make it class="someclass selected", which is what I want. Would that be possible? This snippet was great help for me and I am not very fluent in javascript.

  4. one more solution from my side
    jQuery(document).ready(function(){
    var file_name = document.location.href;
    var end = (file_name.indexOf("?") == -1) ? file_name.length : file_name.indexOf("?");
    jQuery("a[href='" + file_name.substring(file_name.lastIndexOf("/")+1, end) + "']").addClass("selected");
    });

LEAVE A REPLY