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.
- <body id="Journal">
- <!-- Docs master nav -->
- <header class="navbar navbar-static-top bs-docs-nav navbar-inverse" id="top" role="banner">
- <div class="container">
- <div class="navbar-header">
- <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bs-navbar-collapse">
- <span class="sr-only">Toggle navigation</span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- </button>
- <a href="#" class="navbar-brand">Notes</a>
- </div>
- <nav class="collapse navbar-collapse bs-navbar-collapse" role="navigation">
- <ul class="nav navbar-nav">
- <li class="" >
- <a href="#">Journal</a>
- </li>
- <li>
- <a href="#">Programming</a>
- </li>
- </ul>
- </nav>
- </div>
- </header>
The JQuery I tried
- var subject = $("body").attr("id");
- var listItems = $(".navbar-nav").children();
- listItems.each(
- function(i){
- var li = listItems[i]
- if(listItems[i].firstChild.nextSibling.innerHTML == subject){
- console.log("Match found");
- listItems[i].addClass("active"); // => error : addClass is not a function.
- return false;
- }else{
- console.log("Not found");
- }
- });