我有一个菜单,但我想突出显示当前与jquery的链接。
var loc = window.location;
var lochref = $("#topNavigation li a").attr("href");
if(lochref == loc){
$('#topNavigation li a').addClass('currenthover');
}
使用上面的脚本,“a”类没有任何变化。我怎么能用jquery做到这一点? 提前致谢
答案 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}}