使用jquery突出显示菜单中的当前URL

时间:2011-02-10 14:41:07

标签: jquery

我有一个菜单,但我想突出显示当前与jquery的链接。

var loc = window.location;
   var lochref = $("#topNavigation li a").attr("href");

   if(lochref == loc){
       $('#topNavigation li a').addClass('currenthover');
   }

使用上面的脚本,“a”类没有任何变化。我怎么能用jquery做到这一点? 提前致谢

4 个答案:

答案 0 :(得分:3)

首先:这是您应该考虑做服务器端的事情。它更加简单和可靠。

您的代码仅比较第一个链接的href,因为attr返回第一个链接的属性值。您需要遍历链接以找到正确的链接。

var loc = window.location.href;
$("#topNavigation li a").each(function() {
  if(this.href == loc) {
     $(this).addClass('currenthover');
  }
});

答案 1 :(得分:1)

我会在控制台中记录loc和lochref,或者做一个警告,看看它们是什么,它可能就像错过一个尾部斜杠一样简单。除此之外,代码是有效的。

http://jsfiddle.net/loktar/gjZVK/3/

点击运行,第二个警报应匹配,链接将变为红色。

答案 2 :(得分:1)

我一直使用jQuery来突出显示当前菜单项。试试这个:

$(function () {
    var loc = window.location;
    var pathName = loc.pathname.substring(loc.pathname.lastIndexOf('/') + 1);
    $('[href$="' + pathName+ '"]').parent().addClass("active");
});

答案 3 :(得分:0)

您错过了.href window.location对象的var loc = window.location.href 。您需要将第一行更改为:

{{1}}