过去丶
2016-11-30 12:19
<!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的作用按着这个理解就是用来同步却换的。
JavaScript进阶篇
469062 学习 · 22582 问题
相似问题