為什么只有第三行是顏色發(fā)生變化的呢?
? ? ?window.onload = function(){
? ? ? ? ? ? ? ? ? var tr=document.getElementsByTagName("tr");
? ? ? ? ? ? ? ? ? for(i=0;i<tr.length;i++){
? ? ? ? ? ? ? ? ? tr[i].onmouseenter=function(){tr[i].style.background="#f2f2f2";}
? ? ? ? ? ? ? ? ? ? tr[i].onmouseleave=function(){tr[i].style.background="#fff";}
? ? ? ? ? ? ? ? ? }
? ? ? }
2018-02-28
樓上完全正確,可以用以下方案解決:
方案一:用let聲明變量i,即for(i=0;i<tr.length;i++)改為for(let i=0;i<tr.length;i++)?
方案二:用自執(zhí)行匿名函數(shù)把閉包包裝起來,
只需將for循環(huán)體里面的內(nèi)容改為:
2018-01-25
因?yàn)槟憬o每個(gè)tr都綁定了tr[i]的樣式發(fā)生變化,它們的i是同一個(gè)變量。當(dāng)你把鼠標(biāo)以上tr時(shí),這時(shí)候數(shù)組循環(huán)是肯定已經(jīng)完成了的。這時(shí)候的i其實(shí)就是tr.length.