conditional addClass("active") to Bootstrap nav-bar

conditional addClass("active") to Bootstrap nav-bar

My previous post disappeared 

How can I set the class of a <li> tag if it contains text that matches the id of the body tag?

I used a PHP include to attach a nav-bar to all my web pages. Would like to dynamically add a class "active" to the <li> tag that has the text matching the id of the body tag.


  1. <body id="Journal">
  2. <!-- Docs master nav -->
  3. <header class="navbar navbar-static-top bs-docs-nav navbar-inverse" id="top" role="banner">
  4.     <div class="container">
  5.       <div class="navbar-header">
  6.         <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bs-navbar-collapse">
  7.           <span class="sr-only">Toggle navigation</span>
  8.           <span class="icon-bar"></span>
  9.           <span class="icon-bar"></span>
  10.           <span class="icon-bar"></span>
  11.         </button>
  12.         <a href="#" class="navbar-brand">Notes</a>
  13.       </div>
  14.       <nav class="collapse navbar-collapse bs-navbar-collapse" role="navigation">
  15.         <ul class="nav navbar-nav">
  16.           <li class="" >
  17.             <a href="#">Journal</a>
  18.           </li>
  19.           <li>
  20.             <a href="#">Programming</a>
  21.           </li>
  22.         </ul>
  23.       </nav>
  24.     </div>
  25. </header>

The JQuery I tried


  1. var subject = $("body").attr("id");

  2. var listItems = $(".navbar-nav").children();

  3. listItems.each(
  4. function(i){ 
  5. var li = listItems[i]
  6. if(listItems[i].firstChild.nextSibling.innerHTML == subject){
  7. console.log("Match found"); 
  8. listItems[i].addClass("active"); // => error : addClass is not a function.
  9. return false;
  10. }else{
  11. console.log("Not found"); 
  12. }
  13. });