【问题标题】:.each doesn't work in jquery sometimes.each 有时在 jquery 中不起作用
【发布时间】:2017-05-03 11:10:07
【问题描述】:

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

为什么?

$(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>

【问题讨论】:

  • 请更新我为您制作的 sn-p 以在 minimal reproducible example 中展示问题
  • 但它进入了您的each 循环,只需使用您的代码并将其放入循环console.log('test'); 中,您就会看到。

标签: jquery html-lists each


【解决方案1】:

您不需要循环,使用 href 属性来查找您的项目并为它切换类活动

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

【讨论】:

    猜你喜欢
    • 2011-09-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-16
    • 1970-01-01
    • 2019-03-25
    • 2014-06-26
    • 2020-02-11
    • 2019-03-07
    相关资源
    最近更新 更多