我正在尝试仅在当前页面等于该链接时才将类应用于链接。
我找到当前页面:
var pathname = window.location.pathname.split("/")[window.location.pathname.split("/").length - 1];
这会抓取页面的url并保存最后一个/之后的内容,在我的页面为'index.html'的情况下。
现在,我正在使用链接(带有display:block的锚标签),当你将鼠标悬停在它们上时会有背景颜色变化。
我的目标是当您访问链接所链接的页面时,让这些链接已经着色,就像它们被悬停一样。
所以我用过:
if (pathname == $(".linkclass").attr("href")){
$(this).addClass("linkHover");
}
现在显然“this”修饰符不起作用,但是如何告诉它只将linkClass的哪个实例传递给if语句? (而不是.linkclass的每个实例,其中有多个)。
谢谢!
答案 0 :(得分:5)
我明白了,但如果有人遇到类似的问题,我会回答。
我认为jquery可以使用它自己的选择引擎来处理比较,而不是if语句。起初我找了.equals或者什么东西,但我想出来了:
var pathname = window.location.pathname.split("/")[window.location.pathname.split("/").length - 1];
$(".linkClass[href='" +pathname+ "']").addClass("linkHover");
您可以在jquery选择器中使用变量,并针对属性进行选择,因此这非常有效。
答案 1 :(得分:1)
也许尝试这样的事情:
$("#a.linkClass").each(
function() {
if (pathname == $(".linkclass").attr("href")) {
$(this).addClass("linkHover");
}
}
);
或类似的。我们的想法是选择所有菜单链接锚点,然后循环使用它们并使用each()
函数执行测试。
答案 2 :(得分:1)
$("a.linkClass[href='" + pathname + "']").addClass("linkHover");
编辑:克里斯打败了我。提升他的。