Twitter Bootstrap add active class to li

jquery, menu, twitter-bootstrap

Solution

We managed to fix in the end:

/*menu handler*/
$(function(){
  function stripTrailingSlash(str) {
    if(str.substr(-1) == '/') {
      return str.substr(0, str.length - 1);
    }
    return str;
  }

  var url = window.location.pathname;  
  var activePage = stripTrailingSlash(url);

  $('.nav li a').each(function(){  
    var currentPage = stripTrailingSlash($(this).attr('href'));

    if (activePage == currentPage) {
      $(this).parent().addClass('active'); 
    } 
  });
});

Problem

Using twitter bootstrap, and I need to initiate active class to the li portion of the main nav. Automagically. We use php not ruby. Sample nav : ``` <ul class="nav"> <li><a href="/">Home</a></li> <li><a href="/forums">Forums</a></li> <li><a href="/blog">Blog</a></li> <li><a href="/faqs.php">FAQ's</a></li> <li><a href="/item.php">Item</a></li> <li><a href="/create.php">Create</a></li> </ul> ``` Bootstrap code is as follows: ``` <li class="active"><a href="/">Home</a></li> ``` So just need to figure out how to append the class active to the current page. Have looked thru nearly every answer on Stack, with no real joy. I had played with this: ``` /*menu handler*/ $(function(){ var url = window.location.pathname; var activePage = url.substring(url.lastIndexOf('/')+1); $('.nav li a').each(function(){ var currentPage = this.href.substring(this.href.lastIndexOf('/')+1); if (activePage == currentPage) { $(this).parent().addClass('active'); } }); }) ``` But no joy.

Original source

Related problems