佩佩虎
2018-12-07 15:30
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>实践题 - 选项卡</title>
<style type="text/css">
/* CSS样式制作 */
*{padding:0;margin:0;font-size:12px;}
li{list-style:none;}
#box{width:290px;padding:5px;height:150px;}
#box ul{width:100%;height:30px;line-height:30px;border-bottom:1px solid #ccc;}
#box li{width:33.3%;float:left;text-align:center;}
.active{
border-bottom:1px solid #fff;
}
.show{
display:block;
}
.hidden{
display: none;
}
</style>
<script type="text/javascript">
// JS实现选项卡切换
window.onload = function(){
var Ul1=document.getElementById('ul');
var lis = document.getElementsByTagName('li');
var divs = document.getElementsByTagName('div');
for(var i = 0;i<lis.length;i++){
lis[i].index = i;
lis[i].onclick = function(){
for(var i= 0;i<lis.length;i++){
lis[i].className='';
}
this.className='active';
for(var j = 0;j<divs.length;j++){
divs[j].className='hidden';
}
divs[this.index].className='show';
}
}
}
</script>
</head>
<body>
<!-- HTML页面布局 -->
<div id="box">
<ul id="ul">
<li class="active">房产</li>
<li>家居</li>
<li>二手房</li>
</ul>
<div>
275万购昌平邻铁三居 总价20万买一居<br/>
200万内购五环三居 140万安家东三环<br/>
北京首现零首付楼盘 53万购东5环50平<br/>
京楼盘直降5000 中信府 公园楼王现房<br/>
</div>
<div class="hidden">
40平出租屋大改造 美少女的混搭小窝<br/>
经典清新简欧爱家 90平老房焕发新生<br/>
新中式的酷色温情 66平撞色活泼家居<br/>
瓷砖就像选好老婆 卫生间烟道的设计<br/>
</div>
<div class="hidden">
275万购昌平邻铁三居 总价20万买一居<br/>
200万内购五环三居 140万安家东三环<br/>
北京首现零首付楼盘 53万购东5环50平<br/>
京楼盘直降5000 中信府 公园楼王现房<br/>
</div>
</div>
</body>
</html>
根据老夫多年来经验,随便眼睛一瞟就发现了2处问题。。
第一 var lis = document.getElementsByTagName('li'); 你的这个取值不严谨。。
需要改成var lis=Ul1.getElementsByTagName('li');表示ul这个标签下面所有li标签;
第二就是因为你取值不严谨才导致的什么东西全不见了的问题。。
你上面这样写var divs = document.getElementsByTagName('div');
你下面循环的时候 divs[j].className='hidden';给页面所有div都加隐藏,你一点击肯定隐藏啊。。想想看你外层是不是还一个最大的div包着。。你把这个div删了。。我保证你代码可以跑。。
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题
回答 3
回答 4
回答 3
回答 3
回答 5