Dorvalla
Dorvalla

Reputation: 5240

Addclass to Menu Jquery

I am trying to add a class dynamicly to the menu I have on my website, which is build up as followed.

<nav>
    <ul id="" class="mini-menu">
        <li><a href="home">Home</a></li>
        <li><a href="over-jellyfish">Over Jellyfish</a></li>
        <li><a href="blog">Blog</a></li>
        <li class="contact"><a href="contact">Contact</a></li>
    </ul>
    <ul class="hoofd-menu">
        <li class="websites"><a id="dekstop_menu" href="websites"><i class="fa fa-desktop text-center"></i>Websites</a></li>
        <li class="support"><a id="support_menu" href="support"><i class="fa fa-comment-o text-center"></i>Support</a></li>
    </ul>
</nav>

with Jquery I am tryint to add the class active to the mini-menu by doing the following steps.

jQuery(function() {
    var str = window.location.pathname;
    var page = str.split("/");
    p=page[2];
    var active = p=page[2];
    console.log(active);  

    jQuery('.mini-menu a').each(function() {
        if (jQuery(this).attr('href')  ===  active) {
            jQuery(this).addClass('active');
        }
    });
}); 

Yet i seem to miss something here, cause nothing shows up within the html as adding a class to the link. Am I missing the fact that the link is not a direct child of the class mini-nav? If so, how do I fix this?

Upvotes: 0

Views: 103

Answers (1)

queval_j
queval_j

Reputation: 188

Can you try this :

jQuery(function() {
    var str = window.location.pathname;
    var page = str.split("/");
    p=page[2];
    var active = p=page[2];
    console.log(active);  

    jQuery('.mini-menu a').each(function() {
        (function (self) {
        if (jQuery(self).attr('href')  ===  active) {
            jQuery(self).addClass('active');
        }
        })(this);
    });
});

Upvotes: 1

Related Questions