这句 var oSubNav=this.getElementsByTagName('ul')[0]; 表达什么?

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>


慕设计7041374
浏览 2244回答 5
5回答

攻城头狮

//当你鼠标离开li时触发aLi[i].onmouseout=function(){            //this.getElementsByTagName('ul')是获取这个li标签里面所有为ul的子元素,[0]是下标,指第一个元素            var oSubNav=this.getElementsByTagName('ul')[0];//意思是获取鼠标离开的这个li里面的第一个ul//........ }

老猿

第一个ul元素, getElementsByTagName返回的是一个数组

刚毅87

Q1:getElementsByTagName 获取的是一个数组    this.getElementsByTagName('ul')[0]的意思是获取所有的 ul赋值为一个数组,取数组的第一个值Q2:if(oSubNav)应该等价于 if(oSubNav == true),具体如何判断,不看具体代码,不清楚
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript