我正在尝试编写一些jQuery来检查我的无序列表中的链接是否是正在查看的当前页面,然后向该列表项添加一个“当前”类。
这是我目前使用的代码:
$(document).ready(function() {
//<![CDATA[
jQuery(function() {
jQuery('.sidebar li').each(function() {
var href = jQuery(this).find('a').attr('href');
if (href === window.location.pathname) {
jQuery(this).addClass('current');
}
});
});
//]]>
});
这在一定程度上有效,但由于我的侧边栏中的所有链接都是哈希值,因此它总是在第一个li上设置当前类。例如,这是我的链接的样子:
<ul>
<li><a href="/posts#page1" />Table of Contents</a></li>
<li><a href="/posts#page10" />Chapter 1</a></li>
<li><a href="/posts#page25" />Chapter 2</a></li>
</ul>
在此示例中,即使您位于不同的页面上,当前类也仅应用于“目录”li。
有可能以这种方式完成我正在尝试的事情吗?
谢谢!
答案 0 :(得分:3)
只需将location.hash
附加到路径名即可。如果没有,它将为空,因此对于没有链接的链接,它将以这种方式工作。
if (href === window.location.pathname + window.location.hash) {