<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>实践题 - 选项卡</title> <style type="text/css"> /* CSS样式制作 */ *{margin:0;padding:0;font:normal 12px "微软雅黑";color:#000000;} ul{list-style-type: none;} a{text-decoration: none;} #tab-list{width: 275px;height:190px;margin: 20px auto;} #ul1{border-bottom: 2px solid #842;height: 32px;} /*#ul1 li{margin-left:5px;padding:0 10px;float:left;line-height:30px;border:1px solid #bbf;}*/ #ul1 li{display: inline-block;width: 60px;line-height: 30px;text-align: center;border: 1px solid #999;border-bottom: none;margin-left: 5px;} #ul1 li:hover{cursor: pointer;} #ul1 li.active{border-top:2px solid #900;border-bottom:2px solid #FFFFFF;} #tab-list div{border:1px solid #bbf;height:150px;border-top:none;} #tab-list div li{height:30px;line-height:30px;text-indent:8px} .show{display: block;}.hide{display:none} </style> <script type="text/javascript"> // JS实现选项卡切换 window.onload = function(){ var aLi = document.getElementById("ul1").getElementsByTagName("li"); var aDiv = document.getElementById("tab-list").getElementsByTagName("div"); for(var i=0;i<aLi.length;i++){ aLi[i].index = i; aLi[i].onmouseover = function(){ for(var i=0;i<aLi.length;i++){ aLi[i].className = ""; aDiv[i].className = "hide"; } this.className = "active"; aDiv[this.index].className = "show"; } } } // aLi[i].index = i;不加不会显示 // this.className = "active";tab[i].className = "active";区别 </script> </head> <body> <!-- HTML页面布局 --> <div id="tab-list"> <ul id="ul1"> <li id="tag1" onclick="fc()">房产</li><li id="tag2" onclick="jj()">家居</li id="tag3" onclick="esf()"><li>二手房</li> </ul> <div id="first"> <ul> <li><a href="javascript:;">275万购昌平邻铁三居 总价20万买一居</a></li> <li><a href="javascript:;">200万内购五环三居 140万安家东三环</a></li> <li><a href="javascript:;">北京首现零首付楼盘 53万购东5环50平</a></li> <li><a href="javascript:;">京楼盘直降5000 中信府 公园楼王现房</a></li> </ul> </div> <div id="second"> <ul> <li><a href="javascript:;">40平出租屋大改造 美少女的混搭小窝</a></li> <li><a href="javascript:;">经典清新简欧爱家 90平老房焕发新生</a></li> <li><a href="javascript:;">新中式的酷色温情 66平撞色活泼家居</a></li> <li><a href="javascript:;">瓷砖就像选好老婆 卫生间烟道的设计</a></li> </ul> </div> <div id="third"> <ul> <li><a href="javascript:;">通州豪华3居260万 二环稀缺2居250w甩</a></li> <li><a href="javascript:;">西3环通透2居290万 130万2居限量抢购</a></li> <li><a href="javascript:;">黄城根小学学区仅260万 121平70万抛!</a></li> <li><a href="javascript:;">独家别墅280万 苏州桥2居优惠价248万</a></li> </ul> </div> </div> </body> </html>
有2个问题
this.className = "active"换成aLi[i].className = "active";为什么就没有用。
aLi[i].index = i;不加,把aDiv[this.index].className = "show";换成aDiv[i].className = "show"就没有用。
~~~~~~~~~~~~~~~~~~~求大神~~~~~~~~~~~~~~~~~~~
window.onload = function(){
var aLi = document.getElementById("ul1").getElementsByTagName("li");
var aDiv = document.getElementById("tab-list").getElementsByTagName("div");
for(var i=0;i<aLi.length;i++){
aLi[i].index = i;
aLi[i].onclick = function(){
for(var i=0;i<aLi.length;i++){
aLi[i].className = "";
aDiv[i].className = "hide";
}
alert(i);
//aLi[i].className = "active";
//aDiv[aLi[i].index].className = "show";
}
}
}
你这样显示一下i,无论怎样都是3,因为经过了for循环,而aLi[i]=aLi[3]是不存在的,所以有问题。
而this值得是onclick前面的那个aLi[i];
至于index的作用按着这个理解就是用来同步却换的。