如下代码,将this改为rows[i]为啥不起作用了
var rows = document.getElementsByTagName("tr");
for(var i=0;i<rows.length;i++){
   rows[i].onmouseover=function(){
       this.style.backgroundColor="#f2f2f2";
   };
   rows[i].onmouseout=function(){
       this.style.backgroundColor="#fff";
   };
}
function () {
    rows[i].style.backgroundColor = ‘#f2f2f2‘;
};
rows[i].onmouseover = (function (n) {
    return function () {
        rows[n].style.backgroundColor = ‘#f2f2f2‘;
    }
}(i));
for (var i = 0; i < rows.length; i++) {
    rows[i].index = i;
    rows[i].onmouseover = function () {
        rows[this.index].style.backgroundColor = ‘#f2f2f2‘;
    }
}
// 通过给对应项添加属性 index 来保存 i 的值 
遍历元素绑定事件时作用域是怎么回事啊,为什么要用this关键字,而直接使用元素本身就不行?
原文:http://www.cnblogs.com/xiaocheng123/p/6142319.html