Q1:这句 var oSubNav=this.getElementsByTagName('ul')[0]; 表达什么? Q2:if(oSubNav) 为什么可以判断有没有二级导航?<script>window.onload=function(){ var aLi=document.getElementsByTagName('li');for(var i=0; i<aLi.length; i++){ aLi[i].onmouseover=function(){ var oSubNav=this.getElementsByTagName('ul')[0]; if(oSubNav){ var This=oSubNav; clearInterval(This.time); This.time=setInterval(function(){ This.style.height=This.offsetHeight+16+"px"; if(This.offsetHeight>=120) clearInterval(This.time);alert(This.time); },30) } } //鼠标离开菜单,二级菜单动画收缩起来。aLi[i].onmouseout=function(){ var oSubNav=this.getElementsByTagName('ul')[0]; if(oSubNav){ var This=oSubNav; clearInterval(This.time); This.time=setInterval(function(){ This.style.height=This.offsetHeight-16+"px"; if(This.offsetHeight<=0) clearInterval(This.time); },30) } }}}</script>
5 回答
攻城头狮
TA贡献2条经验 获得超3个赞
//当你鼠标离开li时触发
aLi[i].onmouseout=function(){
//this.getElementsByTagName('ul')是获取这个li标签里面所有为ul的子元素,[0]是下标,指第一个元素
var oSubNav=this.getElementsByTagName('ul')[0];//意思是获取鼠标离开的这个li里面的第一个ul
//........ }
刚毅87
TA贡献345条经验 获得超309个赞
Q1:getElementsByTagName 获取的是一个数组
this.getElementsByTagName('ul')[0]的意思是获取所有的 ul赋值为一个数组,取数组的第一个值
Q2:if(oSubNav)应该等价于 if(oSubNav == true),具体如何判断,不看具体代码,不清楚
添加回答
举报
0/150
提交
取消