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

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

向各位請教,我還是不能理解它的原理

這里的 aLi[i].index=i ;? 這樣寫的意義是什么?

index 屬性可返回下拉列表中選項的索引位置。那么這里設置aLi的索引位置其意義是什么?換句話說為什么這里要這么設置呢?

用aLi.length做for循環這個能夠理解,是循環了aLi的index和aLi[i].onmouseover=function(){};

那么再function里面在循環aLi的length給它aLi.className=""這一步是為什么?for循環里面循環不是二維數組的用法嗎?這里面創建了一個二維數組并給每個aLi的class為空?

而其下一步給的this.className="active"; 表示什么?這里的this是aLi[i]的onmouseover的aLi;

那么為什么這里aDiv[j]循環在aLi[i].onmouseover里面循環呢?而后aDiv[this.index]里面的this表示什么呢?

求解,問題很多,麻煩大神耐心講解下,非常感謝,無以為報。

正在回答

2 回答

?window.onload?=?function(){
????????var?oUl?=?document.getElementById("ul1");
????????var?aLi?=?oUl.getElementsByTagName("li");
????????var?oDiv?=?document.getElementById('tab-list');
????????var?aDiv?=?oDiv.getElementsByTagName('div');
????????//對頭部進行循環
????????for(var?i=0;?i<aLi.length;?i++){
????????????//給每一個導航添加一下索引
????????????aLi[i].index=i;
????????????//給每一個導航添加鼠標經過事件
????????????aLi[i].onmouseover=function(){
????????????????//循環所有的導航并且清空激活樣式
????????????????for(var?i=0;?i<aLi.length;?i++){?
????????????????????aLi[i].className='';
????????????????}
????????????????//給鼠標所在的導航添加激活樣式
????????????????this.className='active';
????????????????//循環所有的內容區域?并添加上bd的className??其實這一部的真正目的是為了去掉內容區域上的?on?樣式,也就是讓所有的div隱藏
????????????????for(var?j=0;?j<aDiv.length;?j++){
????????????????????aDiv[j].className?=?'bd';
????????????????}
????????????????//把導航對應的索引位置的?div?顯示出來,這里也就是添加index的作用,通過這個索引來找到對應的div?這里的?this?就是指上面鼠標所在的導航
????????????????aDiv[this.index].className?=?"bd?on";
????????????}
????????}
?????}

不知道這樣能不能解決你的問題

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

Mountain_Ghost 提問者

那么請問為什么這里 aDiv[this.index].className = "bd on"; 添加index索引就能找到對應的div呢?
2015-11-19 回復 有任何疑惑可以回復我~
#2

李曉健 回復 Mountain_Ghost 提問者

因為他們都是3個 三個導航對應的index分別是 0 1 2 三個內容區 在數組里對應的數組的索引也是 0 1 2.
2015-11-19 回復 有任何疑惑可以回復我~
#3

Mountain_Ghost 提問者 回復 李曉健

非常感謝你的回答,對樂于分享知識的人先送上我的敬佩。然后請問前輩,能給個系統學習JS的方法嗎?我是那種能用別人代碼但自己寫不出來的人,我很想能自己寫JS插件,請問前輩,我該怎么做?有什么樣的書推薦嗎?我的HTML+CSS功底非常扎實,但JS因為卻不太好,希望您能幫助我,非常感謝!?。?/div>
2015-11-19 回復 有任何疑惑可以回復我~
#4

千里碼

請問前輩,頭部循環是為了什么呢??
2015-11-26 回復 有任何疑惑可以回復我~
#5

慕移動7500465

你好! var otab=document.getElementById("tabs"); var oul=otab.getElementsByTagName("ul"); //var oli= oul.getElementsByTagName("li");請問下為什么不能用oul對象調用這個方法?看了調試信息說它沒有, 再問下,我怎么知道哪些對象有哪些方法沒有哪些方法呢? var oli = document.getElementsByTagName('li');
2016-01-11 回復 有任何疑惑可以回復我~
#6

慕移動7500465 回復 李曉健

請問下//循環所有的導航并且清空激活樣式 for(var i=0; i<aLi.length; i++){ aLi[i].className=''; } //給鼠標所在的導航添加激活樣式 this.className='active'; 這個清除和激活是在您這里才知道這個東西的,請問還可以在哪看到相關解釋呢?
2016-01-11 回復 有任何疑惑可以回復我~
查看3條回復

javascript 高級程序設計第三版 ? 這本書 ?好好看看

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

qq_Up_2

我想問下問題哦。aLi[i].index=i這條語句相當于給每一個li元素添加一個屬性index是嗎,可是li元素并沒有index這個屬性啊,這點是如何理解的?還有onmouseover事件的函數并沒有收到形參,為什么在函數內部使用了this呢?這個this代表哪個對象?
2015-12-03 回復 有任何疑惑可以回復我~
#2

MR熊 回復 qq_Up_2

對于這個例子,this代表鼠標所在的那個li元素,因此this.index的值為現在鼠標所在的那個li的索引。
2016-01-08 回復 有任何疑惑可以回復我~
#3

Aidcat 回復 qq_Up_2

只是給對象"index"字段賦值而已,和用"index2"、"ind"沒什么區別
2016-01-09 回復 有任何疑惑可以回復我~
#4

慕姐8289045

想問一下,第一個問題,這里哪里體現了三個標題一一對應自己本該對應的那個內容? 第二個問題,為啥 this.className='active', aDiv[this.index].className = "bd on"這兩句只是運用了類名而已,怎么就可以顯示出來了?有點不太理解,,,,,,,
2016-07-26 回復 有任何疑惑可以回復我~
查看1條回復

舉報

0/150
提交
取消

向各位請教,我還是不能理解它的原理

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

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

幫助反饋 APP下載

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

公眾號

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