2017-09-11 4 views
0

I ont une structure de navigation principale comme ci-dessous:Jquery addClass à plusieurs li

<li> 
    <a class="dropdown-toggle" href="about"> 
     <?php echo nav_about ?> 
    </a> 
    <ul class="dropdown-menu"> 
     <li> 
      <a href="<?php echo BASEURL ?>/about-us.html"> 
       <?php echo nav_about_profile ?> 
      </a> 
     </li> 
     <li> 
      <a href="<?php echo BASEURL ?>/committee.html"> 
       <?php echo nav_about_committee ?> 
      </a> 
     </li> 
    </ul> 
</li> 

et un script en surbrillance à l'élément respectif alors que l'URL et de liens sont matchs jusqu'à:

/* highlight nav menu */ 
$(function(){ 
    $('#topMain.nav-pills li a').each(function(index) { 
     if($.trim(this.href) == stripQueryStringAndHashFromPath(window.location.href)) { 
      $(this).closest('li').addClass('active'); 
     } 
    }); 
}); 

function stripQueryStringAndHashFromPath(url) { 
    return url.split("?")[0].split("#")[0]; 
} 

Je peux ajouter active à son lien le plus proche li, mais je veux chercher un moyen d'ajouter active à très haut li ainsi, qui se traduisent par:

<li class="active"> <-- I NEED THIS CLASS TO BE ADD ALSO 
    <a class="dropdown-toggle" href="about"> 
     <?php echo nav_about ?> 
    </a> 
    <ul class="dropdown-menu"> 
     <li class="active"> 
      <a href="<?php echo BASEURL ?>/about-us.html"> 
       <?php echo nav_about_profile ?> 
      </a> 
     </li> 
     <li> 
      <a href="<?php echo BASEURL ?>/committee.html"> 
       <?php echo nav_about_committee ?> 
      </a> 
     </li> 
    </ul> 
</li> 
+0

classe ajouter à la li mère haut comme '' parentli' puis utilisez le plus proche() '' comme .closest (« li.parentli ») 'si vous avez comme cela, il choisira les top li aime ce que tu voulais – guradio

+0

@guradio, merci c'est du boulot! –

+0

heureux d'aider mec :) codage heureux – guradio

Répondre

0

Essayez ceci:

$('.dropdown-menu li:has(a[href="'+opened_path+'"])').addClass('active') 
.parent().closest('li') 
.addClass('active');