这是上一个问题的后续内容。我想要实现的是在单击将呈现新页面的锚标记后向li元素添加类。所以我明白,当页面重新加载时,新的HTML被加载,我的addclass方法将被遗忘。
所以我一直在研究这个问题,似乎还有一种方法可以用jquery做到这一点?希望有人可以澄清或让我知道以下
有什么问题所以这就是我的......
导航栏
<ul id="main-menu" class="clearfix sf-js-enabled sf-arrows">
<li>
<a href="/"><i class="icon-home"></i> Home</a>
</li>
<li>
<a href="/pages/aboutme"><i class="icon-desktop"></i> About Me</a>
</li>
<li>
<a href="/pages/portfolio"><i class="icon-picture"></i> Portfolio</a>
</li>
<li>
<a href="/blog"><i class="icon-comments"></i> Blog</a>
</li>
<li>
<a href="/contact"><i class="icon-envelope"></i> Contact</a>
</li>
</ul>
Jquery的
$('#main-menu li').each(function() {
var href = $(this).find('a').attr('href');
if (href === window.location.pathname) {
$(this).addClass('current-menu-item');
}
});
虽然这不起作用。有人可以解释一下原因吗?或者看到代码中的错误,我最初的想法是我需要找到最接近当前的li?
任何帮助表示赞赏
由于
答案 0 :(得分:2)
在href变量之后放一行。
console.log(href)
你很容易理解那里出了什么问题。 你需要在控制台中看到这个。如果您对此不了解,请使用以下内容。
alert(href)
答案 1 :(得分:0)
如果你从一个标签中获取href,也许你应该从页面中获取href? if (href === window.location.href)
无论如何,我很确定问题出在if条件下。