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

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

js編程挑戰,選項卡切換效果。

window.onload=function(){
????????var?otab=document.getElementById("tabs");
????????var?oli=document.getElementsByTagName("li");
????????var?div=otab.getElementsByTagName("div");
????????for(var?i=0;i<oli.length;i++){
????????????oli[i].index=i;???????????
????????????oli[i].onclick=function(){
????????????????for(var?j=0;j<oli.length;j++){
????????????????????oli[j].className="";
????????????????????div[j].className="hide";
????????????????}
????????????this.className="on";
????????????div[this.index].className="";
????????????}
????????}
????}

關于這里面的this是代表onload的document,還是循環里的oli啊,然后為什么第一層里面需要使用到this.classname ?div[this.index].classname啊 ?主要是不理解第二層和第一層區別的this 和div[里的index和i的不同]

正在回答

2 回答

這里是將當前的i保存到每個對象的index屬性中,目的就是在onclick事件中,點擊每個選項卡獲取當前這個選項卡所對應內容的索引。i就是當前選項卡所對應的內容的索引。

? ? ? ? ? ? ? ? ?這個for循環在文檔加載完成時就已經開始執行,并且執行完了,所以,這個i最后是3,所以oDivs[i]中的這個i=3,oDivs中根本就沒有索引為3的元素,所以會報undefined錯誤,要想獲取當前選項卡的索引,就需要將當前的i保存到沒有oLis對象里面,如代碼:oLis[i].index = i;


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

這里面的this代表的是循環里的oli里面的元素,this.classname ?div[this.index].classname中的this都是當前的oli[i],是同一個

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

舉報

0/150
提交
取消

js編程挑戰,選項卡切換效果。

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

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

幫助反饋 APP下載

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

公眾號

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