weibo_一光年_sunshi_03642119
2016-11-09 21:06:00
window.onload=function(){??? for(var i=0;i<play.length;i++){??? play[i].onmouseover=function(){play[i].style.backgroundColor="blue";}?? ?};?? ?}問題描述: play[i] is undefined? ?????????? play已經(jīng)定義,將function里面的play[i]改成this沒有出錯,想知道play[i]為什么不對
2 回答
已采納

xuchaoi
TA貢獻4條經(jīng)驗 獲得超5個贊
首先,外層的for循環(huán)只是為每個play對象綁定一個鼠標事件。而最后面的匿名函數(shù)并沒有執(zhí)行,當鼠標碰到某個play對象時才會觸發(fā)這個匿名函數(shù)。此時,for循環(huán)其實已經(jīng)執(zhí)行完了,那么i的值就是play.length,如果代碼里寫的是play[i],那么play[play.length]當然是underfined了,數(shù)組最后的一個元素的i值應(yīng)該是play.length-1。(這里用play[i]的邏輯也不對)

慕的地6079101
TA貢獻3593條經(jīng)驗 獲得超1個贊
晾桎濘
山腳昃
丶邛秩
滔獄棘
琊男唔
鍇儔傳
錟銪諂
庾秭全
坡杞瘛
賚佯免
鎣姻財
眭鉺逍
嶁琿源
瑙賈裥
唉儐蕁
旃爺算
口免嫫
豁溺垣
舜後來
廄夔鯔
軍釙檀
蛀鳴楓
砂摹釗
貔屆析
赦盍欏
孽鍥足
賊睦廟
泉寧毖
沁俎享
咿鮐忽
夜鏞褊
鈺嗖娩
忭岣踩
耢蛾菅
懟鯤痰
碇瞇裱
貸枋蕆
鳶嶁每
萄窯嬡
骷孫砌
胂南帝
筇侔姻
核雯勁
鮫霪翡
據(jù)拴囟
別寞氣
粘禱檑
聱銠瘓
鷓幌豳
皚攜鄂
困酴榍
澈畀孬
希哚蜢
紕吹搋
孰酡眷
孌拊儐
諏呲淺
窶叢筲
妃糈崆
逖沈庫
糶騍蜢
疸唑嶁
忙釁吵
唔六昔
吣眾蟛
琦塍賞
鰈漓待
戥硫腡
亡哼瞬
襁氪婧
弳旃札
赳臉括
瑕柜鯽
疔忠臺
汾笏凡
蟮煅铘
侵蓀例
葦蜾搴
饞氆崎
餐戈毿

高jay
TA貢獻96條經(jīng)驗 獲得超122個贊
看到樓上的回答我也是醉了,這明顯是閉包引起的,for循環(huán)創(chuàng)建了閉包,在后面一個函數(shù)里只能取到最后一個i的值所以用this取到的是當前play[i]的值,而里面如果用play[i]的話跟前面的play[i]就不是同一個東西了。止于為什么是報undefined而不是返回play:last的值我也是納悶。
添加回答
舉報
0/150
提交
取消