Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.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 - Fatal编程技术网

Javascript 在子页面上时将活动类添加到父导航

Javascript 在子页面上时将活动类添加到父导航,javascript,jquery,html,css,Javascript,Jquery,Html,Css,当用户位于基于URL的子页面内时,我需要突出显示父导航项 用户当前在页面foo1 child上,父项是foo1,因此我需要将活动类添加到foo1:http://foo.com/foo1/foo1-child.html 导航: 如果您从这两个位置的末尾都删除了“.html”,并在该位置搜索a的href(应该更短),那么它应该可以工作 $('.main-nav li > a').each(function () { var $this = $(this); var loc

当用户位于基于URL的子页面内时,我需要突出显示父导航项

用户当前在页面foo1 child上,父项是foo1,因此我需要将活动类添加到foo1
http://foo.com/foo1/foo1-child.html

导航: 如果您从这两个位置的末尾都删除了“.html”,并在该位置搜索a的href(应该更短),那么它应该可以工作

  $('.main-nav li > a').each(function () {
    var $this = $(this);
    var loc = location.
    if (location.pathname.replace(/\/[^\/]*\.html$/, '').startsWith($this.attr('href').replace(/\.html$/, ''))) {
      $this.parent().addClass('active');
    }
  });

您可以在这里的“操作”中看到它:注意它使用了一个假的location\u pathname而不是location.pathname,因为JSFIDLE在路径中没有必要的前缀,但它表明它应该工作。

您的操作似乎是正确的。你的脚本面临什么问题?你能提供一些关于你的应用程序的更多信息吗。你有后端还是完全是前端应用?不管怎样,我想路由器可能会帮助你,或者在链接上添加一些条件语句来添加类。但需要更多信息。我无法访问后端代码,而且应用程序没有使用任何javascript mvc框架,它只有jQuery。@DanMitchell-你的JS为我工作!我一直在寻找一个可以处理我的孩子网页。不知道为什么它对你不起作用,但我想我应该让你知道它至少对我起作用(在一个自定义WordPress网站上)。非常感谢。改变。如果这仍然不正确,那么请在问题中添加更多可能的页面、可能的面包屑链接的示例。对不起,我添加了路径名。问题似乎在代码笔中。url类似于:/boomerang/d64e88d0d8c483755855f22336dcd9f71454177965519,因此比较不起作用。
  $('.main-nav li > a').each(function () {
    var $this = $(this);
    var loc = location.
    if (location.pathname.replace(/\/[^\/]*\.html$/, '').startsWith($this.attr('href').replace(/\.html$/, ''))) {
      $this.parent().addClass('active');
    }
  });
  $('.main-nav li > a').each(function () {
    var $this = $(this);
    var loc = location.
    if (location.pathname.replace(/\/[^\/]*\.html$/, '').startsWith($this.attr('href').replace(/\.html$/, ''))) {
      $this.parent().addClass('active');
    }
  });