首页 > 解决方案 > 将类添加到菜单问题

问题描述

您好,我试图在我的菜单上添加类,但它不起作用

如果你能帮助我,非常感谢。

对不起

HTML

          <ul class="nav nav-pills nav-stacked">
          <li class="active"><a href="page1.php"><i class="fas fa-home"></i>Page1</a></li>
          <li><a href="page2.php"><i class="fas fa-user-circle"></i>Page2</a></li>
      </ul>

JS

       <script>
var selector = '.nav li';
var url = window.location.href;
var target = url.split('/');
 $(selector).each(function(){
    if($(this).find('a').attr('href')===('/'+target[target.length-1])){
      $(selector).removeClass('active');
      $(this).removeClass('active').addClass('active');
    }
 });
    </script>

标签: htmljquery

解决方案


问题是你的if语句永远不会被执行。原因如下:

目标值为:

var target = url.split('/'); // ["localhost", "admin"]

现在,如果您在每个方法中尝试比较两个不同的值:

$(this).find('a').attr('href') // page2.php

和价值

('/'+target[target.length-1]) // /admin

这就是为什么这些代码行永远不会被执行,因为 'page2.php' 不等于 '/admin'

  $(selector).removeClass('active');
  $(this).removeClass('active').addClass('active');

推荐阅读