1

我无法使用 URL 识别为我的菜单设置活动状态。如果你在它链接的页面上,我想要实现的是<a href="">改变。<a id="active" href ="">这是我到目前为止所做的,它似乎不起作用。

如果您有任何想法,请告诉我,并感谢大家的帮助!

 $(function(){   
  var url = window.location.href;   
  var page = url.substr(url.lastIndexOf('/')+1);   
   $('.ActiveMenu a[href*="'+page+'"]');   
   $(this).attr({ id: 'active'});});


  <ul id="menu">
   <li id="Link1" class="ActiveMenu"><a href="URL1">Link 1</a></li>
   <li id="Link2" class="ActiveMenu"><a href="URL2">Link 2</a></li>
   <li id="Link3" class="ActiveMenu"><a href="URL3">Link 3</a></li>
  </ul>
4

3 回答 3

1

所以问题是你的函数不知道 $(this) 是什么。相反,您应该将目标设置为正确的元素,然后向其添加一个类。你不应该使用 id 因为你应该只有一个 id 并且它应该是一个唯一的标识符,而不是一个状态。类更适合它。让我知道这是否适合您!:)

演示

 $(function(){   
  var url = window.location.href;   
  var page = url.substr(url.lastIndexOf('/')+1);   
   target = $('.ActiveMenu a[href*="'+page+'"]');   
   $(target).addClass('active');
});


  <ul id="menu">
   <li id="Link1" class="ActiveMenu"><a href="URL1">Link 1</a></li>
   <li id="Link2" class="ActiveMenu"><a href="URL2">Link 2</a></li>
   <li id="Link3" class="ActiveMenu"><a href="URL3">Link 3</a></li>
  </ul>
于 2013-10-02T16:23:53.007 回答
0

请添加/更改类名而不是 Id

$(function(){   
   var url = window.location.href;   
   var page = url.substr(url.lastIndexOf('/')+1);   
   var currentPage=$('.ActiveMenu a[href*="'+page+'"]');   
   currentPage.addClass('active');

});
于 2013-10-02T16:22:57.813 回答
0

请用

$(this).attr("id","active");
于 2013-10-02T16:23:12.787 回答