切兔子
2016-01-11 20:15
我知道肯定有问题,但是找了半天也找不到原因....求大神orz
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>实践题 - 选项卡</title> <style type="text/css"> /* CSS样式制作 */ *{padding:0px;margin:0px;font-size:15px;} #tabs{width:350px;height:200px;} #tabs ul{list-style:none;height:30px;line-height:30px;display:block;border-bottom:2px black solid;} #tabs ul li{float:left;margin:0 5px;line-height:28px;height:28px;width:50px;border:1px solid grey;border-bottom:none;background:#fff;display:inline-block;cursor:pointer;text-align:center;} #tabs ul .on{border-top:2px saddlebrown solid;border-bottom:2px #fff solid;} #tabs div{height:150px;border:1px blue solid;border-top:none;padding:10px;} .hide{display:none;} </style> <script type="text/javascript"> // JS实现选项卡切换 window.onload=function(){ var otab=document.getElementById("tabs"); var oul=otab.getElementsByTagName("ul"); var oli=oul.getElementsByTagName("li"); var odiv=otab.getElementsByTagName("div"); for(var i=0,len=oli.length;i<len;i++){ oli[i].index=i; oli[i].onclick=function(){ for(var n=0;n<len;n++){ oli[n].className=""; odiv[n].className="hide"; } this.className="on"; odiv[this.index].className=""; } } } </script> </head> <body> <!-- HTML页面布局 --> <div id="tabs"> <ul> <li class="on">房产</li> <li>家居</li> <li>二手房</li> </ul> <div> 275万购昌平邻铁三居 总价20万买一居<br/> 200万内购五环三居 140万安家东三环<br/> 北京首现零首付楼盘 53万购东5环50平<br/> 京楼盘直降5000 中信府 公园楼王现房<br/> </div> <div class="hide"> 40平出租屋大改造 美少女的混搭小窝<br/> 经典清新简欧爱家 90平老房焕发新生<br/> 新中式的酷色温情 66平撞色活泼家居<br/> 瓷砖就像选好老婆 卫生间烟道的设计<br/> </div> <div class="hide"> 通州豪华3居260万 二环稀缺2居250w甩<br/> 西3环通透2居290万 130万2居限量抢购<br/> 黄城根小学学区仅260万 121平70万抛!<br/> 独家别墅280万 苏州桥2居优惠价248万<br/> </div> </div> </body> </html>
var oul=otab.getElementsByTagName("ul");
这里缺了下标,加上下标为[0]即可。
为什么呢?getElementsByTagName() 方法可返回带有指定标签名的对象的集合。
那么我们要准确找到ul元素,应该通过这个集合的下标去获取。所以改成下面这样即可
var oul=otab.getElementsByTagName("ul")[0];
把这句 var oli=oul.getElementsByTagName("li"); 中的oul换成document对象就没有问题了。看了调试信息,说没有这个函数,我也不知道什么原因,等待楼下大神解答。
为什么我复制粘贴过来div 的class属性都变没了...
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题