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="#fff"; } } }
为什么上面这种方法不行,一定要用下面的方法呢?
window.onload = function(){ var tr=document.getElementsByTagName("tr"); for(var i= 0;i<tr.length;i++) { bgcChange(tr[i]); } } function bgcChange(obj) { obj.onmouseover=function(){ obj.style.backgroundColor="#f2f2f2"; } obj.onmouseout=function(){ obj.style.backgroundColor="#fff"; } }
把tr[i].style.backgroundColor="#f2f2f2";里的tr[i]改成this就可以了,因为当前对象就是tr[i],在当前对象里使用本对象只能用this,用tr[i]的话肯定就是undefined的了。以上纯属个人见解
同问同问同问同问
第七行 funciton 拼错了 - -! function