Tyler_me
2016-11-17 09:35
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>Untitled Document</title> <style type = "text/css"> *{margin:0; padding:0; font:normal 12px "微软雅黑";} ul{list-style-type: none;} #tablelist{width:275px; height:155px; margin:20px auto; } #tablelist #ul1{border-bottom: 2px solid #8B4517; height:32px;} #tablelist #ul1 li{display:inline-block; width:60px; height:30px; line-height:30px; margin-left:3px; border:1px solid #999; border-bottom:none; text-align:center; } #tablelist #ul1 li:hover{cursor:pointer;} //#ul1 li:hover{cursor:pointer;} #tablelist #ul1 li.active{border-top:2px solid #8B4517; border-bottom:2px solid #FFF; } #tablelist div{border:1px solid #999; border-top:none; } #tablelist div ul li{height:30px; line-height:30px; text-indent:8px; } .hide{display:none;} .show{display:block;} </style> <script type = "text/javascript"> window.onload = function(){ var oul = document.getElementById("ul1"); var aul = oul.getElementsByTagName("li"); var oDiv = document.getElementById("tablelist"); var aDiv = oDiv.getElementsByTagName("div"); for (var i = 0;i < aul.length;i++){ aul[i].index = i; aul[i].onmouseover = function(){ for(var n = 0;n < aul.length;n++){ aul[n].className = ""; } this.className = "active"; for(var j = 0;j < aDiv.length;j++){ aDiv[j].className = "hide"; } aDiv[this.index].className = "show"; } } } </script> </head> <body> <div id="tablelist"> <ul id="ul1"> <li class="active">房产</li> <li>家居</li> <li>二手房</li> </ul> <div class= ""> <ul> <li>275万购昌平邻铁三居 总价20万买一居</li> <li>200万内购五环三居 140万安家东三环</li> <li>北京首现零首付楼盘 53万购东5环50平</li> </ul> </div> <div class= "hide"> <ul> <li>40平出租屋大改造 美少女的混搭小窝</li> <li>经典清新简欧爱家 90平老房焕发新</li> <li>新中式的酷色温情 66平撞色活泼家居</li> </ul> </div> <div class= "hide"> <ul> <li>通州豪华3居260万 二环稀缺2居250w甩</li> <li>西3环通透2居290万 130万2居限量抢购</li> <li>黄城根小学学区仅260万 121平70万抛!</li> </ul> </div> </div> </body> </html>
这段代码中,javascript代码中的一句aul[i].index = i;为什么有存在的必要,如果删掉只有下面的大块div就不显示了,但是我不理解这是为什么啊,求解
因为在最后要执行 aDiv[this.index].className = "show" 的时候 给数组一个准确的下标 也就是 aDiv[?]
问号的部分应该为一个数字。使用 this 返回得到的是一个 数组名 也就是 oLI[i] ,所以建立和i的联系。 oLi[i].index=i; 写成oLi[i].anything=i; 都可以
i是索引值,而au[i].index=i,就是给index赋值,这里用什么都可以,index就是个变量,至于为什么要用,因为下面要用到this.index,也就是当前发生事件的对象的索引值,这里就是用这个来确定应该哪一个div显示
同问啊啊
var oul = document.getElementById("ul1");
var aul = oul.getElementsByTagName("li");
//oul.get...是为了定义className作用对象为id为tablelist下的所有文本div
JavaScript进阶篇
468782 学习 · 22507 问题
相似问题