活动状态菜单javascript

时间:2013-10-02 16:18:48

标签: javascript jquery

我无法使用网址识别功能为菜单设置活动状态。我想要实现的是让<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>

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

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

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

});

答案 2 :(得分:0)

请使用

$(this).attr("id","active");