用js查找法实现当前栏目样式的高亮显示

判断当前URL对当前栏目高亮突出显示,重点是用indexOf来判断两个字符串中第一次出现的位置,如果没有出现就返回-1,出现就返回
其它,并与返回其它结果的那个字符串所在元素定义一个class样式。

页面HTML代码如下:
<div id="nav">
    <ul>
        <li><a href="http://www.example.com/1.html"><span>资讯中心</span></a></li>
        <li><a href="http://www.example.com/2.html"><span>网络编程</span></a></li>
        <li><a href="http://www.example.com/3.html"><span>实用技巧</span></a></li>
        <li><a href="http://www.example.com/4.html"><span>软件编程</span></a></li>
        <li><a href="http://www.example.com/5.html"><span>网页制作</span></a></li>
        <li><a href="http://www.example.com/6.html"><span>操作系统</span></a></li>
    </ul>
</div>

页面JS脚本如下:
var myNav = document.getElementById("nav").getElementsByTagName("a");
for(var i=0;i<myNav.length;i++){
    var links = myNav[i].getAttribute("href");
    //alert(links);
    //alert(myNav[i]);
    var myURL = document.location.href;
    if(myURL.indexOf(links) != -1){
        myNav[i].className="d";
    }
}

比如:点击“资讯中心”之后,URL地址变成 http://www.example.com/1.html ,而使用 document.location.href 取得的就是这个地址。然后我们再遍历当前查找到的所有a连接,取得每个连接href的值。遍历的代码:
var myNav = document.getElementById("nav").getElementsByTagName("a");
for(var i=0;i<myNav.length;i++){
    var links = myNav[i].getAttribute("href");
}
使 用indexOf函数来比较是否页面的所有连接中,是否有当前页的URL地址出现。若有的话,就表明是当前栏目,那么就修改当前连接的样式。这就实现了当 前栏目高亮显示,当前栏目高亮显示是一个很实用的技巧,在增加用户体验方面尤其有好处。但在实用过程中,可能需要注意一些细节问题,比如网站是用外链的方 式来连接的,那么在处理的时候,点了这个外链的
时候就可能出现问题,呵呵。

http://hi.baidu.com/pwq8/blog/item/f333e58fa2e98afdf11f36d9.html

posted on 2011-08-01 12:15  senly  阅读(2688)  评论(0编辑  收藏  举报

导航