在新页面上将类添加到li

时间:2013-07-19 12:45:48

标签: javascript jquery

这是上一个问题的后续内容。我想要实现的是在单击将呈现新页面的锚标记后向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?

任何帮助表示赞赏

由于

2 个答案:

答案 0 :(得分:2)

在href变量之后放一行。

console.log(href)

你很容易理解那里出了什么问题。 你需要在控制台中看到这个。如果您对此不了解,请使用以下内容。

alert(href)

答案 1 :(得分:0)

如果你从一个标签中获取href,也许你应该从页面中获取href? if (href === window.location.href)无论如何,我很确定问题出在if条件下。