关于 document.getElementById 取到class 详情见案例
window.onload=function (){
var nav = document.getElementById("list_menu");
var links = nav.getElementsByTagName("li");
var lilen = nav.getElementsByTagName("a");
var currenturl = document.location.href;
var last = 0;
for (var i=0;i<links.length;i++)
{
var linkurl = lilen[i].getAttribute("href");
if(currenturl.indexOf(linkurl)!=-1)
{
last = i;
links[last].className = "current";
}
}
}
</script>
<dl class="mod_menu">
<dt class="mod_hd">
<h3>新手入门</h3>
</dt>
<dd class="mod_bd">
<ul class="list_menu">
<li><a href=>新用户注册</a></li>
<li><a href=>用户登录</a></li>
<li><a href=>找回密码</a></li>
</ul>
</dd>
</dl>
<dl class="mod_menu">
<dt class="mod_hd">
<h3>定制须知</h3>
</dt>
<dd class="mod_bd">
<ul class="list_menu">
<li><a href="help1.html">什么是定制酒</a></li>
<li><a href="help2.html">定制自己的酒有十大好处</a></li>
<li><a href="help3.html">定制酒菜单</a></li>
<li><a href="help4.html">定制酒的四种类别</a></li>
<li><a href="help5.html">定制程序五步法</a></li>
</ul>
</dd>
</dl>
<dl class="mod_menu">
<dt class="mod_hd">
<h3>支付方式</h3>
</dt>
<dd class="mod_bd">
<ul class="list_menu">
<li><a href=>在线支付</a></li>
<li><a href=>邮政汇款</a></li>
<li><a href=>银行转账</a></li>
<li><a href=>发票说明</a></li>
</ul>
</dd>
</dl> 展开
虽然没说要干嘛,但是我看了下脚本执行,你使用
var nav = document.getElementById("list_menu"); 这个要获取的只能是id的值,而不能是class的值的元素,如果你想要获取相同class名的元素的话,要用下面的命令。。。
var nav = document.getElementsByClassName("list_menu");
通过你的代码我修改了下,执行的后果是。。
具体测试如下:
<script type="text/javascript" language="javascript">
window.onload=function (){
//var nav = document.getElementById("list_menu");
var nav = document.getElementsByClassName("list_menu");
alert(nav.length);
var links = nav.getElementsByTagName("li");
var lilen = nav.getElementsByTagName("a");
var currenturl = document.location.href;
var last = 0;
for (var i=0;i<links.length;i++)
{
var linkurl = lilen[i].getAttribute("href");
if(currenturl.indexOf(linkurl)!=-1)
{
last = i;
links[last].className = "current";
}
}
}
</script>
把获取class的nav变量修改下就好了,~~~
我的意图是让当前项高亮,也就是获取到list_menu 下的li下的 a的href值 判断哪个a的链接为当前url,然后给予li 一个 class值 通过css background=”#c00“ 来让当前项高亮
你高亮的时候是要点击后li块出现背景高亮??这样的话不是还得判断是否被点击了,光这些代码好像不够哎,感觉jq比较好用,几句话的事就好了,你看下我附件的试试,js的要做的事情还得好多,目前没破解出来。。。抱歉了~~~