為什么要用this.style不直接用tr[i].style呢?
function?changeColor(){ ?????????var?tbody=document.getElementById("table").lastChild; ?????????var?tr=tbody.getElementsByTagName('tr'); ?????????var?len=tr.length; ?????????for(var?i=0;i<len;i++){ ?????????????tr[i].onmouseover?=?function(){ ??????????????alert(this); ?????????????????this.style.backgroundColor="#f2f2f2"; ?????????????} ?????????????tr[i].onmouseout?=?function(){this.style.backgroundColor="#fff"; ???????????} ?????????} ?????}
在上面的代碼中為什么不能寫(xiě)tr[i].style,有點(diǎn)理解不了了
2016-06-02
我也有疑問(wèn),還有一點(diǎn)不懂,這段函數(shù)是要預(yù)編譯么?為什么for()循環(huán)的i會(huì)是最后的len值,正常的for()循環(huán)是不是也是這樣的?
2016-05-25
我又翻了下書(shū),然后我的理解是function(){
? ? ? ? ? ? ? alert(this);
? ? ? ? ? ? ? ? ?this.style.backgroundColor="#f2f2f2";
? ? ? ? ? ? ?}是一個(gè)函數(shù)閉包,此時(shí)在這個(gè)函數(shù)里面調(diào)用i應(yīng)該是最后的一個(gè)值即是len也就是3,而tr[i]就是tr[len],相當(dāng)于個(gè)tr這個(gè)數(shù)組新增加了一項(xiàng)默認(rèn)值為undefined.在這里function(){this.style.backgroundColor="#fff";
? ? ? ? ? ?}是作為tr[i]這個(gè)對(duì)象的onmouseout屬性的值,也就是給tr[i]這個(gè)對(duì)象添加了一個(gè)方法。當(dāng)函數(shù)被作為某個(gè)對(duì)象的方法調(diào)用時(shí),this等于那個(gè)對(duì)象。
2016-05-24
因?yàn)槟莻€(gè)地方是添加事件,那個(gè)事件函數(shù)并沒(méi)有執(zhí)行,點(diǎn)擊執(zhí)行的時(shí)候函數(shù)體就只有this這個(gè)變量,沒(méi)定義tr[i];