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

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

求助大神,有地方不是很懂

<!doctype html>

<html>

<head>

<meta charset="utf-8">

<title>無標題文檔</title>

<style type="text/css">

*{padding:0px;margin:0px;font:12px normal "microsoft yahei"}

#tabs{width:290px;padding:5px;height:150px;margin:20px;}

#tabs ul{list-style:none;display:block;height:30px;line-height:30px; border-bottom:2px saddlebrown solid;}

#tabs ul li{background:#fff;cursor:pointer;float:left;list-style:none;height:28px;line-height:28px;margin:0px 3px;border:1px solid #aaa;border-bottom:none;display:inline-block;width:60px;text-align:center;}

#tabs ul li.on{border-top:2px solid saddlebrown;border-bottom:2px solid #fff;}

#tabs div{height:120px;line-height:25px;border:1px solid #336699; border-top:none;padding:5px;}

.hide{display:none;}

</style>

</head>


<body>

<div id="tabs">

<ul>

<li class="on">房產</li>

<li>家居</li>

<li>二手房</li>

</ul>

<div>

275萬購昌平鄰鐵三居 總價20萬買一居<br>

? ? 200萬內購五環三居 140萬安家東三環<br>

? ? 北京首現零首付樓盤 53萬購東5環50平<br>

? ? 京樓盤直降5000 中信府 公園樓王現房<br>

</div>

<div class="hide">

40平出租屋大改造 美少女的混搭小窩<br>

? ? ? 經典清新簡歐愛家 90平老房煥發新生<br>

? ? ? 新中式的酷色溫情 66平撞色活潑家居<br>

? ? ? 瓷磚就像選好老婆 衛生間煙道的設計<br>

</div>

<div class="hide">

通州豪華3居260萬 二環稀缺250w甩<br>

? ? ? 西3環通透2居290萬 130萬限量搶購<br>

? ? ? 黃城根小學學區僅260萬 12170萬拋!<br>

? ? ? 獨家別墅280萬 蘇州橋2居優價248萬<br>

</div>

</div>

</body>


<script type="text/javascript">

window.onload=function(){

var oTab=document.getElementById("tabs");

var oUl=oTab.getElementsByTagName("ul")[0];

var olis=oUl.getElementsByTagName("li");

var oDivs=oTab.getElementsByTagName("div");

for(var i=0,len=olis.length;i<len;i++){

olis[i].index=i;

olis[i].onclick=function(){

for(var n=0;n<len;n++){

olis[n].className="";

oDivs[n].className="hide";

}

this.className="on";

oDivs[this.index].className="";

};

}

}

系統提供的這段javascript代碼中?olis[i].index=i;和oDivs[this.index].className="";不是很理解。后面的this.index 為什么不能用 i 代替


正在回答

1 回答

  1. var聲明的i 沒有塊級作用域 , 當i的值發生變化時 ,無法在變量對象中存儲多個階段的值 , 所以變量對象在各個循環階段只產生一個i ,這個i隨著循環會不斷更新 .

  2. 事件是異步執行的,事件驅動時(即函數調用),會去找事件綁定時(階段)的變量,發現不存在此階段的i變量,所以向后找到已經更新的i , 導致結果發生錯亂 ; 利用添加obj.index屬性來保存各個階段的i變量來達到目的






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

舉報

0/150
提交
取消
JavaScript進階篇
  • 參與學習       468832    人
  • 解答問題       22582    個

本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界

進入課程

求助大神,有地方不是很懂

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

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

幫助反饋 APP下載

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

公眾號

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