.each 有时在 jquery 中不起作用

.each doesn't work in jquery sometimes

我在网站的母版页上有一个菜单,我想在每个页面上突出显示所选菜单。我需要循环遍历菜单项以获取其页面打开的菜单,但在某些页面中,每个功能都不会进入循环!

为什么?

$(document).ready(function() {
  debugger;
  var url = window.location;
  var oldURL = document.referrer;
  $('.navbar-collapse ul.nav li a').each(function() {

    if (this.href == oldURL) {
      $('.navbar-collapse .nav').find('.active').removeClass('active');
      $(this).parent().addClass('active');
    }

    if (this.href == url) {
      $('.navbar-collapse .nav').find('.active').removeClass('active');
      $(this).parent().addClass('active');
      return false;
    }

  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
  <ul class="nav navbar-nav">
    <li class="dropdown">
      <a href="../Forms/DefaultMain.aspx">صفحه اصلی </a>
    </li>
    <li class="dropdown">
      <a href="#" class="dropdown-toggle">rr<b class="caret"></b></a>
      <ul class="dropdown-menu">
        <li><a href="../Forms/HotelProduct.aspx">tt</a></li>
        <li><a href="../Forms/CommunicationProduct.aspx">ll</a></li>
      </ul>
    </li>
    <li class="dropdown">
      <a href="../Forms/OurCustomers.aspx" class="dropdown-toggle">mm</a>
    </li>

    <li class="dropdown">
      <a href="../Forms/ContactUs.aspx" class="dropdown-toggle">jj </a>
    </li>
  </ul>
</div>

您不需要循环,使用 href 属性查找您的项目并为其切换 class 活动状态

$('.navbar-collapse .nav .active').removeClass('active');
$('.navbar-collapse ul.nav li a[href="'+url+'"]').parent().addClass('active');