1小时先生
2016-09-08 17:13
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>实践题 - 选项卡</title> <style type="text/css"> /* CSS样式制作 */ *{margin:0;padding:0;font:normal 14px "微软雅黑";color:black;} ul{list-style-type:none;} a{text-decoration:none;} #content{ width:300px; height:200px; margin:20px auto; } #list{ border-bottom:2px solid red; height:32px; } #list li{ display:inline-block; width:60px; line-height:30px; text-align:center; border:1px solid #999; border-bottom:none; margin-left:5px; } #list li:hover{ cursor:pointer; } #list li.active{ border-top:2px solid red; border-bottom:2px solid #FFFFFF; } #content div{ border:1px solid #7396BB; border-top:none; } #content 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 oList = document.getElementById("list"); var aLi = oList.getElementsByTagName("li"); var oDiv = document.getElementById("content"); var aDiv = oDiv.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 = ""; } this.className = "active"; for(var j=0;j<aDiv.length;j++) { aDiv[j].className = "hide"; } aDiv[this.index].className = "show"; } //方法二:鼠标触发事件第二种方法: /* 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].onclick = function() { for(var i=0;i<aLi.length;i++) { aLi[i].className = ""; aDiv[i].className = "hide"; } this.className = "active"; aDiv[this.index].className = ""; }*/ } } </script> </head> <body> <!-- HTML页面布局 --> <div id="content"> <ul id="list"> <li>房产</li> <li>家居</li> <li>二手房</li> </ul> <div> <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> <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> <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>
因为他们的值都是三,循环的次数都是三次,方法二中的aDiv[i].className = "hide";放在方法一的第一个for循环的范围里(for(var i=0;i<aLi.length;i++))或者(for(var j=0;j<aDiv.length;j++)的范围里都是同样的,因为他们的循环次数都为三次,序号也是相同的,放在哪一个都是可以实现的,主要是他们for循环的i值,0,1,2这样子。
主要是想知道:方法一中,那个for循环的范围是分,for(var i=0;i<aLi.length;i++)和for(var j=0;j<aDiv.length;j++),而方法二中for循环的范围为:for(var i=0;i<aLi.length;i++),然而,为什么当方法二中的aDiv[i].className = "hide";放在方法一的第一个for循环的范围里(for(var i=0;i<aLi.length;i++)),而不是(for(var j=0;j<aDiv.length;j++)的范围里却依然可以实现啊?
JavaScript进阶篇
468781 学习 · 22507 问题
相似问题