亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么要用div[this.index]而不闊以直接用div[i]?

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]不闊以呢?

正在回答

3 回答

因為在點擊選項卡調用funtion()函數時i的值并沒有傳進來啊。

0 回復 有任何疑惑可以回復我~
#1

muge10

你好,你說的這句“點擊選項卡調用funtion()函數時i的值并沒有傳進來”不大明白,能再解釋下嗎?
2015-05-14 回復 有任何疑惑可以回復我~
#2

xwj_ouc 提問者

非常感謝!
2015-11-05 回復 有任何疑惑可以回復我~
#3

qq_玲玲的大_04311806

為什么不能直接這樣li[i].onclick = function(i){... div[i] } 求解釋?
2016-11-25 回復 有任何疑惑可以回復我~

不可以? 由于在這里有兩個for循環,在外面的循環結束之后的i是一個遍歷結束之后的值就是li.length-1.在內循環中訪問的i的值都是li.length-1.所以我們需要給li[i]添加一個數組的屬性值。使得li[i].index指向的是當前點擊的索引值。

0 回復 有任何疑惑可以回復我~

法人方法

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么要用div[this.index]而不闊以直接用div[i]?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號