0

如果 href 等于 url,我有下面的代码将 .active 类添加到链接。它适用于菜单项,但对于子菜单项它不能正常工作。例如,如果单击带有文本“收件箱消息”的链接,我想将 .active 类添加到带有文本“消息”的主链接。但它不起作用,你知道如何实现吗?还有javascript代码?

HTML

<li class="navbar-vertical-aside-has-menu ">
                  <a class="js-navbar-vertical-aside-menu-link nav-link nav-link-toggle " href="javascript:;" title="Messages">
                    <i class="fal fa-comment" style="font-size: 20px; padding:0 13px 0 10px"></i>
                    <span class="navbar-vertical-aside-mini-mode-hidden-elements text-truncate">Messages</span>
                  </a>
      
                  <ul class="js-navbar-vertical-aside-submenu nav nav-sub">
                    <li class="{{ (request()->segment(1) == 'inboxes') ? 'active' : '' }}">
                      <a class="nav-link " href="{{ route('sms.inboxes') }}" title="Inbox Message">
                        <span class="tio-circle nav-indicator-icon"></span>
                        <span class="text-truncate">Inbox Message</span>
                      </a>
                    </li>
                    <li class="{{ (request()->segment(1) == 'outboxes') ? 'active' : '' }}">
                      <a class="nav-link " href="{{ route('sms.outboxes') }}" title="Outbox Message">
                        <span class="tio-circle nav-indicator-icon"></span>
                        <span class="text-truncate">Outbox Message</span>
                      </a>
                    </li>
                    <li class="{{ (request()->segment(1) == 'sent-message') ? 'active' : '' }}">
                      <a class="nav-link " href="{{ route('sms.sents') }}" title="Sent Message">
                        <span class="tio-circle nav-indicator-icon"></span>
                        <span class="text-truncate">Sent Message</span>
                      </a>
                    </li>
                  </ul>
                </li>

JS:

      const currentLocation = location.href;
      const menuItem = document.querySelectorAll('a');
      const menuLength = menuItem.length
      for (let i = 0; i<menuLength; i++){
        if(menuItem[i].href === currentLocation){
          menuItem[i].className = "js-nav-tooltip-link nav-link active"
        }
      }
4

0 回答 0