drayarms Posted December 12, 2011 Share Posted December 12, 2011 Hello, I tried to give a shot at the problem posed in the subject line. So below is my HTML and jQ for what I'm trying to accomplish. html <ul class="topnav1"> <li class="highlight"><a href="index.php">Home</a></li> <li><a href="testimonials_page.php">Testimonials</a></li> <li><a href="services.php">Services</a></li> <li><a href="contact_page.php">Contact Us</a></li> </ul> jQ <script type='text/javascript'> //Menu highlights. $(document).ready(function(){ var pathname = (window.location.pathname.match(/[^\/]+$/)[0]); $(".topnav1 li a").each(function() { if ($(this).attr('href')==pathname) { $("li.highlight").removeClass("highlight"); $(this).parent().parent().addClass("highlight"); } }); $("li.highlight"').parents().each(function(){ if ($(this).is("li")){ $(this).addClass("highlight"); } }); }); </script> The idea is to remove the highlighted class from its default list item, and assign it to the list item whose href attribute matches the current url. I must admit I'm not the best at programming matching patterns, so I'm kind of at a loss as to how to match only part of the url with the href attribute and I'm not sure that's why my code isn't working( the highlight is retained on the home menu item and isn't applied to the others). Any ideas? Quote Link to comment https://forums.phpfreaks.com/topic/253017-highlight-current-page-in-navigation-bar-how-to/ Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.