第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

為什么for循環(huán)中直接使用tr[i]不可以,(詳情見下面代碼)

為什么for循環(huán)中直接使用tr[i]不可以

window.onload = function(){
???? // 鼠標(biāo)移動(dòng)改變背景,可以通過給每行綁定鼠標(biāo)移上事件和鼠標(biāo)移除事件來改變所在行背景色。
??????? var tr = document.getElementsByTagName("tr");
??????? for(var i = 0; i < tr.length; i++)
??????? {
???????????tr[i].onmouseover=function()
??????????? {
??????????????? tr[i].style.backgroundColor = "#f2f2f2";
??????????? }
??????????? tr[i].onmouseout=function()
??????????? {
??????????????? tr[i].style.backgroundColor = "#fff";
??????????? }??????

??? ?? }

}

這是別人的代碼,但我的問題和他有點(diǎn)不一樣,這是別人回答他:

這是由于事件的異步執(zhí)行造成的。方法一中給每個(gè)tr都綁定了onmouseover和onmouseout事件,頁面加載完成后,for循環(huán)中的i已經(jīng)變?yōu)榱藅r.length。而事件此時(shí)還沒有被觸發(fā),當(dāng)用戶移動(dòng)鼠標(biāo)觸發(fā)事件時(shí),事件函數(shù)中的代碼? tr[i].style.backgroundColor = "#f2f2f2";開始執(zhí)行,而這時(shí)i的值已經(jīng)是tr.length了,tr[i]即tr[tr.length],可tr中最后一個(gè)是tr[tr.length-1],而tr[tr.length]這個(gè)節(jié)點(diǎn)是不存在的。

我的問題是:

就是for循環(huán)結(jié)束后,每個(gè)tr[i]的事件不是已經(jīng)注冊(cè)了嗎?就是tr[0].style.backgroundColor = "#f2f2f2";這樣每個(gè)tr[i]事件都注冊(cè)了,那這時(shí)i怎么變不是應(yīng)該沒關(guān)系了嗎,為什么鼠標(biāo)移動(dòng)的時(shí)候觸發(fā)事件的時(shí)候還要在執(zhí)行tr[i].style.backgroundColor = "#f2f2f2";這個(gè)啊,不是應(yīng)該執(zhí)行如tr[0].style.backgroundColor = "#f2f2f2";這樣的,執(zhí)行的是注冊(cè)的事件嗎?


正在回答

4 回答

似乎有點(diǎn)明白,似乎不明白。。。我也是那樣寫的,怎么都行不通。。。把方法單獨(dú)寫到一個(gè)方法就OK,這感覺就像是這語言有點(diǎn)ZZ

0 回復(fù) 有任何疑惑可以回復(fù)我~

電腦有毒,鑒定完畢


0 回復(fù) 有任何疑惑可以回復(fù)我~

你得理解不對(duì),每個(gè)tr[i]事件確實(shí)注冊(cè)了,但是只是注冊(cè)到?tr[i].onmouseover=function()這一步,具體事件內(nèi)容還是要等觸發(fā)的時(shí)候再去獲取

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

ゞ蘇戲 〃

為什么會(huì)沒有注冊(cè)方法體,具體原因給解釋解釋......
2016-11-10 回復(fù) 有任何疑惑可以回復(fù)我~
#2

慕容7796276 提問者

你是說等到觸發(fā)的時(shí)候再去獲取,是動(dòng)態(tài)的獲取嗎?比如這個(gè)代碼 window.onload=function(){ var tr = document.getElementsByTagName("tr"); for(var i=0;i<1000000;i++){ tr[i].onmouseover=function(){ document.write(i); } } } 要是按照你說的觸發(fā)的時(shí)候獲取那i應(yīng)該會(huì)非常大的啊,為什么輸出的是3?。?/div>
2016-11-10 回復(fù) 有任何疑惑可以回復(fù)我~
#3

ゞ蘇戲 〃 回復(fù) 慕容7796276 提問者

蠢,over
2016-11-10 回復(fù) 有任何疑惑可以回復(fù)我~
#4

stone310 回復(fù) 慕容7796276 提問者

我不知道你這段代碼是怎么執(zhí)行出來為3的,能發(fā)全嗎??
2016-11-10 回復(fù) 有任何疑惑可以回復(fù)我~
#5

stone310 回復(fù) ゞ蘇戲 〃

js是單線程,事件觸發(fā)后才會(huì)將對(duì)應(yīng)的回調(diào)放到線程上等待執(zhí)行,所以,沒事多看看書,電腦有毒這種言論當(dāng)個(gè)笑話說也沒什么意思
2016-11-10 回復(fù) 有任何疑惑可以回復(fù)我~
#6

慕容7796276 提問者

求回復(fù)啊
2016-11-11 回復(fù) 有任何疑惑可以回復(fù)我~
#7

慕容7796276 提問者 回復(fù) stone310

window.onload = function(){ var tr = document.getElementsByTagName("tr"); for(var i=0;i<1000000;i++){ tr[i].onmouseover=function(){ document.write(i);}}} </script>
2016-11-11 回復(fù) 有任何疑惑可以回復(fù)我~
#8

慕容7796276 提問者 回復(fù) stone310

<body> <table border="1" width="50%" id="table"> <tr> <th>學(xué)號(hào)</th> <th>姓名</th> <th>操作</th> </tr> <tr> <td>xh001</td> <td>王小明</td> <td><a href="javascript:;" >刪除</a></td> <!--在刪除按鈕上添加點(diǎn)擊事件 --> </tr>
2016-11-11 回復(fù) 有任何疑惑可以回復(fù)我~
#9

慕容7796276 提問者 回復(fù) stone310

<tr> <td>xh002</td> <td>劉小芳</td> <td><a href="javascript:;" >刪除</a></td> <!--在刪除按鈕上添加點(diǎn)擊事件 --> </tr> </table> <input type="button" value="添加一行" /> <!--在添加按鈕上添加點(diǎn)擊事件 --> </body>
2016-11-11 回復(fù) 有任何疑惑可以回復(fù)我~
#10

stone310 回復(fù) 慕容7796276 提問者

。。你這頁面就3個(gè)<tr>,最多i就是3了,i=4的時(shí)候,tr[i].onmouseover已經(jīng)報(bào)錯(cuò)了好吧
2016-11-11 回復(fù) 有任何疑惑可以回復(fù)我~
#11

stone310 回復(fù) 慕容7796276 提問者

應(yīng)該說i=2的時(shí)候,事件都是被注冊(cè)的,i為3的時(shí)候,tr[i]不存在,事件注冊(cè)時(shí)報(bào)錯(cuò),最終i為3
2016-11-11 回復(fù) 有任何疑惑可以回復(fù)我~
#12

慕容7796276 提問者 回復(fù) stone310

js要是報(bào)錯(cuò)了是不是就不會(huì)運(yùn)行下去了?。恳簿褪茄h(huán)就會(huì)停止,而此時(shí)i等于3
2016-11-12 回復(fù) 有任何疑惑可以回復(fù)我~
#13

stone310 回復(fù) 慕容7796276 提問者

報(bào)錯(cuò)了之后的代碼就不執(zhí)行了
2016-11-13 回復(fù) 有任何疑惑可以回復(fù)我~
查看10條回復(fù)

怎么沒人回答我的,跪求解答


0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

為什么for循環(huán)中直接使用tr[i]不可以,(詳情見下面代碼)

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)