課程
/前端開發
/JavaScript
/JavaScript進階篇
第二個for循環我知道,就是統一格式化所有選項卡。
第一個for循環是怎么實現選項切換的沒看明白。
求解答
2019-03-31
源自:JavaScript進階篇 10-1
正在回答
從上到下按順序執行,頁面加載到此處運行第一個for里面的oli[i].index=i;此時不執行onclick這一段,當發生點擊事件時才執行,建議可以在多處增加console.log()的語句在控制臺查看是否執行~
第一個for循環只是遍歷一下li,給所有li加上點擊事件;第二個for循環作用是,先把其它的class清除掉,再給當前點擊的li加上class。沒有發生點擊事件的時候,外面for循環執行到“oli[i].index=i;?”,當網頁加載好的同時就已經獲取了所有index,里面的for循環下面兩行是點擊后才執行的。你看對應的花括號就是了。
oli[i].onclick?=?function(){ ????//?里面所有的語句都被onclick事件包含。 ????…… }
這是我的理解,如果有其他同學的理解跟我不一樣歡迎指出來。大家一起學習。謝謝
當沒有發生點擊事件的時候,外面那個for循環執行到哪一步???是當網頁加載好的同時就已經獲取了所有index,還是要點擊的時候才獲取相應的index???內for循環下面那兩行是要點擊事件發生后才執行嗎?
window.onload=function(){
? ? ? ? var oul=document.getElementsByTagName("ul")[0];
? ? ? ? var oli=oul.getElementsByTagName("li");
? ? ? ? var odiv=document.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="";
? ? ? ? ? ? ? ? ? ? odiv[j].className="hide";
? ? ? ? ? ? ? ? }
? ? ? ? ? ? this.className="on";
? ? ? ? ? ? odiv[this.index].className="";
? ? ? ? ? ? }
? ? ? ? }
? ? }
舉報
本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界
2 回答為什么要用兩個for循環呀,選項卡切換
1 回答js 實現選項卡切換
3 回答怎么實現選項卡切換的
3 回答選項卡切換不能實現,怎么回事啊
3 回答實現選項卡切換的效果
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2019-05-16
從上到下按順序執行,頁面加載到此處運行第一個for里面的oli[i].index=i;此時不執行onclick這一段,當發生點擊事件時才執行,建議可以在多處增加console.log()的語句在控制臺查看是否執行~
2019-04-05
第一個for循環只是遍歷一下li,給所有li加上點擊事件;第二個for循環作用是,先把其它的class清除掉,再給當前點擊的li加上class。沒有發生點擊事件的時候,外面for循環執行到“oli[i].index=i;?”,當網頁加載好的同時就已經獲取了所有index,里面的for循環下面兩行是點擊后才執行的。你看對應的花括號就是了。
這是我的理解,如果有其他同學的理解跟我不一樣歡迎指出來。大家一起學習。謝謝
2019-03-31
當沒有發生點擊事件的時候,外面那個for循環執行到哪一步???是當網頁加載好的同時就已經獲取了所有index,還是要點擊的時候才獲取相應的index???內for循環下面那兩行是要點擊事件發生后才執行嗎?
2019-03-31
window.onload=function(){
? ? ? ? var oul=document.getElementsByTagName("ul")[0];
? ? ? ? var oli=oul.getElementsByTagName("li");
? ? ? ? var odiv=document.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="";
? ? ? ? ? ? ? ? ? ? odiv[j].className="hide";
? ? ? ? ? ? ? ? }
? ? ? ? ? ? this.className="on";
? ? ? ? ? ? odiv[this.index].className="";
? ? ? ? ? ? }
? ? ? ? }
? ? }