向各位请教,我还是不能理解它的原理

来源:10-1 编程挑战

Mountain_Ghost

2015-11-19 09:29

这里的 aLi[i].index=i ;  这样写的意义是什么?

index 属性可返回下拉列表中选项的索引位置。那么这里设置aLi的索引位置其意义是什么?换句话说为什么这里要这么设置呢?

用aLi.length做for循环这个能够理解,是循环了aLi的index和aLi[i].onmouseover=function(){};

那么再function里面在循环aLi的length给它aLi.className=""这一步是为什么?for循环里面循环不是二维数组的用法吗?这里面创建了一个二维数组并给每个aLi的class为空?

而其下一步给的this.className="active"; 表示什么?这里的this是aLi[i]的onmouseover的aLi;

那么为什么这里aDiv[j]循环在aLi[i].onmouseover里面循环呢?而后aDiv[this.index]里面的this表示什么呢?

求解,问题很多,麻烦大神耐心讲解下,非常感谢,无以为报。

写回答 关注

2回答

  • 李晓健
    2015-11-19 13:09:27
    已采纳
     window.onload = function(){
            var oUl = document.getElementById("ul1");
            var aLi = oUl.getElementsByTagName("li");
            var oDiv = document.getElementById('tab-list');
            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';
                    //循环所有的内容区域 并添加上bd的className  其实这一部的真正目的是为了去掉内容区域上的 on 样式,也就是让所有的div隐藏
                    for(var j=0; j<aDiv.length; j++){
                        aDiv[j].className = 'bd';
                    }
                    //把导航对应的索引位置的 div 显示出来,这里也就是添加index的作用,通过这个索引来找到对应的div 这里的 this 就是指上面鼠标所在的导航
                    aDiv[this.index].className = "bd on";
                }
            }
         }

    不知道这样能不能解决你的问题

    慕移动750... 回复李晓健

    请问下//循环所有的导航并且清空激活样式 for(var i=0; i<aLi.length; i++){ aLi[i].className=''; } //给鼠标所在的导航添加激活样式 this.className='active'; 这个清除和激活是在您这里才知道这个东西的,请问还可以在哪看到相关解释呢?

    2016-01-11 22:13:03

    共 6 条回复 >

  • 李晓健
    2015-11-19 18:20:50

    javascript 高级程序设计第三版   这本书  好好看看

    慕姐8289...

    想问一下,第一个问题,这里哪里体现了三个标题一一对应自己本该对应的那个内容? 第二个问题,为啥 this.className='active', aDiv[this.index].className = "bd on"这两句只是运用了类名而已,怎么就可以显示出来了?有点不太理解,,,,,,,

    2016-07-26 16:21:13

    共 4 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468060 学习 · 21891 问题

查看课程

相似问题