根据页面将类附加到锚点

时间:2013-08-15 04:16:56

标签: jquery

我正在尝试添加网站的导航部分,并使侧边栏中的当前页面具有“当前”类以更改其颜色。我正在使用jQuery,好像我没有弄错,addClass在IE 8和9中工作,而使用javascript将需要额外的编码才能使它与浏览器兼容。

<div id="link_location">onandon</div>

<script type="text/javascript">
    var id = document.getElementById('link_location').innerHTML;
    $("'#"+ id +"'").addClass('current');
</script>

<div id="sidebar">
    <div id="links">
        <li><a id="allofnothinginstall" href="allofnothinginstall.html">All of Nothing</a></li>
        <li><a id="onandon" href="onandon.html">on and on</a></li>
    </div> 
</div>

我确信有更简洁的方法可以做到这一点,但我还在学习javascript而且不知道如何从窗口位置拉出url并且只保留页面名称。非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

您需要在文档就绪处理程序中运行JS,以便加载DOM。而且你不应该在选择器中有'个字符。

$(function() {
    var id = $("#link_location").text();
    $("#" + id).addClass('current');
});

答案 1 :(得分:0)

您可以发送window.location.pathname来获取当前页面的路径。对于此页面,返回"/questions/18246248/appending-class-to-anchor-based-on-page"。您可以使用正则表达式或.slice()。

打开你的控制台(在开发工具中),输入window.location,然后按回车键。它会显示您可以访问的所有信息,包括window.location.pathname