I am trying to add an active
class dynamically on <a>
tag based on the location pathname.
Both pathname
and href
values are the same. However, I can't see active
class being added based on the jquery code I have written. I can't figure out what exactly I am missing.
$(document).ready(function() {
var pathname = window.location.pathname;
$('.br-sideleft .br-sideleft-menu').find('.active').removeClass('active');
$('.br-sideleft .br-sideleft-menu li a').each(function() {
if (this.href == pathname) {
$(this).addClass('active');
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="br-sideleft">
<ul class="br-sideleft-menu">
<li class="br-menu-item">
<a class="br-menu-link active" asp-area="" asp-controller="Home" asp-action="Index">Link 1</a>
</li>
</ul>
<ul class="br-sideleft-menu">
<li class="br-menu-item">
<a class="br-menu-link" asp-area="" asp-controller="Home" asp-action="Page2">Link 2</a>
</li>
<li class="br-menu-item">
<a class="br-menu-link" asp-area="" asp-controller="Home" asp-action="Page3">Link 3</a>
</li>
</ul>
<ul class="br-sideleft-menu">
<li class="br-menu-item">
<a class="br-menu-link" asp-area="" asp-controller="Home" asp-action="Page4">Link 4</a>
</li>
<li class="br-menu-item">
<a class="br-menu-link" asp-area="" asp-controller="Home" asp-action="Page5">Link 5</a>
</li>
</ul>
</div>