通过单击导航菜单外的任何链接,将活动菜单设置为当前页面



以下代码的功能是将类添加到当前页面上单击的链接中,并且两者都可以工作。

$("li a").filter(function(){ return this.href == location.href.replace(/#.*/, ""); }).parents('nav ul li').addClass("selected");

var loc = window.location.href;
$("a").each(function() {
  if(this.href == loc) {
     $(this).parents('nav ul li').addClass('selected');
  }
});

但我的问题是,你只能在导航中添加类链接。单击div之外的任何链接都不会添加任何类。请看一下这个网址,然后点击导航1或2之外的链接。

  1. 你推荐我用哪一个
  2. 当我点击导航区外的任何链接时,如何使用jquery将默认类设置为第一个li(视频)

我的目标是将类添加到父类李,并且它是李选择的子类。

请帮我一下。非常感谢。

它不会添加类,因为您试图将导航项href与它不匹配的url进行匹配。

你可以随时添加第二部分,以确保选择了

var loc = window.location.href;
$("nav a").each(function() {
  if(this.href == loc) {
   $(this).parents('li').addClass('selected');
  }
});
$("nav").each( function(){
    var $nav = $(this); 
    if ($nav.find('li.selected').length == 0 ){
         $nav.first('.li').addClass('selected');
    }
})

最新更新