xwj_ouc
2015-04-05 11:39
window.onload=function(){
var oTab = document.getElementById("tabs")
var li = document.getElementsByTagName("li");
var p = oTab.getElementsByTagName("p");//oTabs.get...是为了定义className作用对象为id为tabs下的所有文本div
for(var i=0;i<li.length;i++){//获取所有i编号的元素
li[i].index = i; //定义一个index属性对li进行编号
li[i].onclick = function(){//再注册一个点击事件,当点击的时候所有标签都恢复最初状态
for(var n=0;n<li.length;n++){//这步是相对于未被点击部分的样式
li[n].className = "";
p[n].className = "hide";
}
this.className = "on";//再对点击事件添加相应的属性
p[this.index].className = "";//通过之前的index编号绑定的指定div
}
}
}
倒数第四行为什么要构建li[i].index=i;而且倒数第四行还要用p[this.index]。为什么把li[i].index=i删掉,倒数第四行改成p[i]不阔以呢?
因为在点击选项卡调用funtion()函数时i的值并没有传进来啊。
不可以 由于在这里有两个for循环,在外面的循环结束之后的i是一个遍历结束之后的值就是li.length-1.在内循环中访问的i的值都是li.length-1.所以我们需要给li[i]添加一个数组的属性值。使得li[i].index指向的是当前点击的索引值。
法人方法
JavaScript进阶篇
468192 学习 · 21891 问题
相似问题