Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改当前页面的菜单背景色_Javascript_Jquery_Html_Css_Drop Down Menu - Fatal编程技术网

Javascript 更改当前页面的菜单背景色

Javascript 更改当前页面的菜单背景色,javascript,jquery,html,css,drop-down-menu,Javascript,Jquery,Html,Css,Drop Down Menu,我有一个带有子菜单的菜单 html <ul class="nav navbar-nav float-xs-right top-nav"> <li class="nav-item"><a class="nav-link" href="/our-work/">Our Work</a></li> <li class="nav-item dropdown"> <a class="nav-link dro

我有一个带有子菜单的菜单
html

<ul class="nav navbar-nav float-xs-right top-nav">
   <li class="nav-item"><a class="nav-link" href="/our-work/">Our Work</a></li>
   <li class="nav-item dropdown">
      <a class="nav-link dropdown-toggle" href="/what-we-do/">What We Do</a>
          <div class="dropdown-menu">
              <a class="dropdown-item" href="/what-we-do/we-develop/">We Develop</a>
              <a class="dropdown-item" href="/what-we-do/we-promote/">We Promote</a>
              <a class="dropdown-item" href="/what-we-do/we-support/">We Support</a>
          </div>
    </li>
    <li class="nav-item"><a class="nav-link" href="/contact/">Contact</a></li>
</ul>
function activeMenu() {
    var curr_url = window.location.pathname ;
    var curr_menu = $("a[href$='" + curr_url + "']");
    $(curr_menu).css("background", "#fff");
}
activeMenu();
它正在更改标签的背景颜色,如果它是子菜单,则子菜单的背景颜色正在更改。
但我想更改父菜单的背景颜色,而不是子菜单
使用jQuery选择父菜单是否有可能的解决方案?

请参阅此jQuery方法:

在你的情况下,我想这就是你想要的

function activeMenu() {
    var curr_url = window.location.pathname ;
    var curr_menu = $("a[href$='" + curr_url + "']");
    $(curr_menu).parent(".dropdown-toggle").css("background", "#fff");
}
activeMenu();

您可以使用香草javascript实现这一点。假设您的
的id为“菜单”:

const menu = document.getElementById("menu").children;
const list =  [...menu]
const currentPage = list.filter(li => li.children[0].pathname == window.location.pathname)
currentPage[0].className = "active"