改變行顏色,這樣寫為什么不行?
window.onload = function(){ ? ??
? ? ?// 鼠標移動改變背景,可以通過給每行綁定鼠標移上事件和鼠標移除事件來改變所在行背景色。
? ? ? ? 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="#f2f2f2";
? ? ? ? ? ? }
? ? ? ? }
}
2017-02-22
alltr[i].onmouseover=function(){ this.style.backgroundColor = "#f2f2f2";}
與alltr[i].onmouseover=function(){ alltr[i].style.backgroundColor = "#f2f2f2";}:
后者無法改變顏色的原因在于,鼠標事件為觸發(fā)事件,也就是說,是給每行添加一個觸發(fā)事件,但是觸發(fā)后執(zhí)行的內(nèi)容,是觸發(fā)對象this顏色改變。
先循環(huán),添加事件后,此時i=3, 再發(fā)生觸發(fā),運行觸發(fā)函數(shù)中內(nèi)容,alltr[i]中的i為3,而不是觸發(fā)對象。
2017-02-25
因為按照你寫的 添加這個事件以后他會按照最后的結果也就是tr[i]去執(zhí)行,這個i不會變成固定值,而是依然動態(tài)的,而FOR結束以后I肯定是3,所以所有的方法里都會變成tr[3],但是3里根本沒有元素,所以控制臺報錯,也沒有效果。
2017-02-16
先不說你代碼對不對,你這兩個顏色設置的一樣,怎么看效果呢?