正文 1779字数 157,315阅读

建议用jquery库实现. 具体是4个菜单的母容器设ID=mother,4个菜单分别在一个li里如下 <ul id="mother"> <li onclick="changeClass(this)";></li> </ul> function changeClass(a) { $("#mother").children("li").removeClass("被点击的菜单的CSS类"); $(a).addClass("被点击的菜单的CSS类"); } 如果不用jquery会比较麻烦但是也可以写 function changeClass(a) { document.getElementById("mother").getElementsByTagName("li").className="未被点击的CSS类"; a.className="被点击菜单的CSS类"; } 我也忘了是不是className了,你跟踪一下看看有问题也是大小写的问题.但jquery的方法应该是没错的. 像你图片里的菜单html应该差不多这么写 <div id="mother"> <div class="menu"> <span>硬件产品<span> <ul> <li onclick="changeClass(this)";>终端产品</li> <li onclick="changeClass(this)";>软件产品</li> </ul> </div> </div> css这方面的问题在写就多了,你估计看着也烦。具体就是也写background,text-alain 和float的问题。应该不难写。 ps:你这不叫单击过的菜单变色.二是当前选中的菜单变色.谢谢 追问: 我点了菜单后是链接到另一个新的页面去了。菜单这部分被include过去了,有没像COOKIE一样能记忆得住,哪个菜单背景色该变的。而不是点的瞬间变色了,到了新打开的页面,又没变。 追答: 不知道你后台使用什么代码写的。 一般情况下都是后台直接设置前台高亮菜单的。 onready事件里这样写 function onreadyfunc() { var lis=document.getElementById("mother").getElementsByTagName("li"); for(var i=0;i<lis.length;i++) { var href = location.subStr(location.lastIndexOf("/")); if(lis[i].getElementsByTagName["a"][0].href==href) { lis[i].className="高亮CSS" }else { lis[i].className="非高亮CSS" } } } ps:百度这边没有代码编辑器,可能有JS代码的大小写错误,你自己编辑的时候注意点儿,.
Run code
Cut to clipboard