jquery实现导航高亮问题

代码如下,想实现的效果:打开页面时第一个链接高亮,之后点击任意一个链接,有且只有该链接高亮。
目前存在的问题是,会同时存在上下两个链接高亮。

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
<style>
body, ul, ol, li, div, p {
    margin:0px;
    padding:0px;
}
ul {
    list-style-type:none;
    border:1px solid blue;
    background:#4f5b93;
    height:45px;
}
ul li {
    float:left;
    heihgt:45px;
    line-height:45px;
    width:100px;
    text-align:center;
}
ul li a:link, a:visited {
    color:#fff;
    text-decoration:none;
}
.act {
    background:#ff6600;
}
</style>
<script src="http://libs.baidu.com/jquery/1.9.1/jquery.min.js"></script>
<script>

$(function(){
$('.menu ul li').eq(0).addClass("act");
 $('ul li').each(function(){
   $(this).click(function(){
       $(this).addClass("act").siblings().removeClass("act");
      });
  });
})
</script>
</head>

<body>
<div class="menu">
    <ul>
        <li><a>首页</a></li>
        <li><a>随笔</a></li>
        <li><a>素材</a></li>
        <li><a>编程</a></li>
    </ul>
</div>
<div class="menu2">
    <ul>
        <li><a>首页</a></li>
        <li><a>随笔</a></li>
        <li><a>素材</a></li>
        <li><a>编程</a></li>
    </ul>
</div>
</body>
</html>
 <script>

$(function(){
$('.menu ul li').eq(0).addClass("act");
var t=$('.menu ul li').eq(0);
 $('ul li').each(function(){
   $(this).click(function(){
 t.removeClass("act");
       $(this).addClass("act").siblings().removeClass("act");
       t=$(this); 

      });
  });
})
</script>

运行了一下你的代码,好像没问题。你说的问题是:点击第二个菜单导航内容,第一个菜单导航高亮没有消失,是这个意思么?两个不在同一个div中,用siblings只能在同级的兄弟元素中起作用。


$(this).addClass("act").siblings().removeClass("act"); 这句话的问题。siblings()只获取同辈元素。也就是同一个ul里的li。所以不能移除另一个ul的样式。应该改成$("ul li").removeClass("act");$(this).addClass("act");