这几行代码是什么意思?

来源:10-1 编程挑战

哈哈哈蜜瓜

2016-09-21 13:32

 window.onload = function() {
        var oUl1 = document.getElementById("ul1");
        var aLi = oUl1.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";
                for(var j = 0; j < aDiv.length; j++) {
                    aDiv[j].className = "hide";
                }
                aDiv[this.index].className = "show";
            }       
        }
    }
   1、aLi[i].index = i 2、aLi[i].className = "" 3、 this.className = "active"; 4、 aDiv[this.index].className = "show"; ,特别是第三条的this指的是什么

写回答 关注

4回答

  • 幻蝶
    2016-09-21 16:55:02
    已采纳

    1.通过遍历,给相应的元素设置索引值。2.将索引值为i的li标签的类名设置为空,也就是暂时删除hide类名3.this就是指当前高亮的元素4.让当前的div元素显示

    哈哈哈蜜瓜

    非常感谢!

    2016-09-21 18:02:04

    共 2 条回复 >

  • 幻蝶
    2016-09-21 18:00:28

    可以这么理解,aDiv[this.index]获取的是相应索引值下的div元素

  • 幻蝶
    2016-09-21 17:40:36

    这个是给当前元素添加了一个active的类,并显示这个类所包含的样式

    哈哈哈蜜瓜

    最后一个问题, aDiv[this.index]这段怎么理解?意思是点击到第几个li就出现第几个div吗

    2016-09-21 17:51:25

    共 1 条回复 >

  • 幻蝶
    2016-09-21 17:18:11

    索引值是该元素的一个属性,你这样的写法是将i的值赋给了这个元素,逻辑上有错误。

    this是指当前的元素,比如说你点击了第二个li标签,那么this就指代第二个li标签

    哈哈哈蜜瓜

    那this.className="active"是指点击其他两个li出现第一个active的效果吗

    2016-09-21 17:31:31

    共 1 条回复 >

JavaScript进阶篇

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

468192 学习 · 21891 问题

查看课程

相似问题