根据子元素href属性将活动类设置为元素

时间:2017-05-23 06:29:05

标签: javascript jquery html jquery-ui navigation

我已经编写了导航代码。我想检查哪个类是活动的,根据它应该为相应的选项卡设置蓝色

我的代码



$(function() {
  var pgurl = window.location.href.substr(window.location.href.lastIndexOf("/") + 1);
  $("#tslcNav ul li a").each(function() {
    if ($(this).attr("href") == pgurl || $(this).attr("href") == '')
      $(this).addClass("active");
  })
});

.tslcNav li:hover,
.tslcNav li.active,
.tslcNav li.active {
  background: none;
  border-color: #009FD6;
  color: #009FD6;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<div class="tslcNav" role="navigation">
  <div class="navbar-collapse collapse">
    <ul class="nav navbar-nav">
      <li><a href="index.html">Home</a></li>
      <li><a href="manage.html">Manage </a></li>
      <li><a href="welcome.html">welcome/a></li>
          <li><a href="security.html">Security </a></li>
    </ul>
  </div>
  <!--/.nav-collapse -->
</div>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

您将活动放在元素上,而不是列表中 将您的javascript代码更改为:

$(function() {
    var pgurl = window.location.href.substr(window.location.href.lastIndexOf("/")+1);
    $(".tslcNav ul li a").each(function(){
         if($(this).attr("href") == pgurl || $(this).attr("href") == '' )
         $(this).parent().addClass("active");
    })
});   

答案 1 :(得分:0)

那是因为你正在为锚元素添加类active。并且您的选择器将li元素作为活动类。因此,您需要将类active添加到parent li,而不是将其添加到anchor元素。您可以在此处使用.closest().parent()

 $(this).closest('li').addClass("active");