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

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

下面這段代碼不懂啊,求解答啊,var _this=this.getElementsByTagName('i')[0];

window.inload=function(){

var oMove=document.getElementById('move');

var aList=oMove.getElementsByTagName('a');

for(var i=0;i<aList.length;i++){

aList[i].onmouseover=function(){

var _this=this.getElementsByTagName('i')[0];

startMove(_this,{top:-25,opacity:0},function(){

_this.style.top=30+'px';

startMove(_this,{top:25,opacity:100})

});

}

}

}

以上這段是老師的代碼

for(var i=0;i<aList.length;i++){}

這個是遍歷所有取到的a標簽,所以獲得的是一個數組,所以有了接下來的:

aList[i].onmouseover=function(){}

但是接下來的var _this=this.getElementsByTagName('i')[0];我不是很懂,為什么這里在當前事件下,還要取第一個標簽呢?

當i=1時,那么得到aList[1].onmouseover=function(){},也就是第二個a標簽,這個時候為什么還要取

var _this=this.getElementsByTagName('i')[0],這里取到的不是第一個i標簽嗎,但是我們現在要的難道不是第二個i標簽嗎,不懂,求解答。。。


正在回答

3 回答

這快我也有問題,不過看了你們的解釋之后貌似明白了,首先都是用的getElementsByTagName所以這獲得都是一個數組,無論這個數組有多少元素,哪怕一個,他也是數組,回到樓主的問題當中,因為都是用的數組,所以要獲取對象都是用[0]的,拙見。

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

當i=0 時,aList[i] 取到的是第一個 a 標記. ?

這個時候 ?var?_this=this.getElementsByTagName('i')[0]; ?中的_this 指的是第一個a中的 i 標記.

當i=1 時,aList[i] 取到的是第二個 a 標記. ?

這個時候 ?var?_this=this.getElementsByTagName('i')[0]; ?中的_this 指的是第二個a中的 i 標記.

并不是第一個i標記. ?

注意?var?_this=this.getElementsByTagName('i')[0]; ? 這里面是this.getElementsByTagName('i')[0] ?而不是document.getElementsByTagName('i')[0]. 兩者取到的是不同的,后者取到的是整個文檔中的i的第一個

前者是 this下的i的第一個,也就是第 i 個a中的 i標記的第一個.


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

wangao4321 提問者

你說的很詳細,我理解了。那我在問一個問題,為什么 var _this=this.getElementsByTagName('i')[0]要這樣寫呢,直接寫成 var _this=this.getElementsByTagName('i')不行嗎,因為源代碼,每個a標簽中都只有一個i標簽。
2016-04-27 回復 有任何疑惑可以回復我~
#2

DMSF 回復 wangao4321 提問者

你這樣寫得到的是一個數組,雖然只有一個,不是一個具體的值,所以要[0]
2016-04-27 回復 有任何疑惑可以回復我~

getElementsByTagName 這個方法返回一個類似數組的對象,訪問數組對象可以用下標來訪問
【0】就是取其第一項,(注意是elements 那個S 說明是個數組類的)

getElementsByTagName返回的是一個集合。[0],表示獲取傳進來元素里面元素叫i的。

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

wangao4321 提問者

你的意思是說,getElementsByTagName后面加上【0】,這句話用來表示這是一個聚合,而var _this=this.getElementsByTagName('i')[0],這句話表示獲取這個集合中的所有I元素? 我一直把他理解成獲取第一個I標簽,所以是我理解偏差了?
2016-04-25 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
JS動畫效果
  • 參與學習       113918    人
  • 解答問題       1502    個

通過本課程JS動畫的學習,從簡單動畫開始,逐步深入各種動畫框架封裝

進入課程

下面這段代碼不懂啊,求解答啊,var _this=this.getElementsByTagName('i')[0];

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

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

幫助反饋 APP下載

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

公眾號

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