DOMOHAHA
2016-02-04 18:38
为什么这样可以,
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";
}
}
这样却不行?
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"; }
}
}
将 tr[i].style.backgroundColor="#f2f2f2"; 改为 this.style.backgroundColor="#f2f2f2";
window.onload = function(){
var tr=document.getElementsByTagName("tr");
for(var i= 0;i<tr.length;i++)
{
tr[i].onmouseover=function(){
this.style.backgroundColor="#f2f2f2"; }
tr[i].onmouseout=function(i){
this.style.backgroundColor="#fff"; }
}
}
这样就行;
首先
tr[i].onmouseover=function(){
tr[i].style.backgroundColor="#f2f2f2"; }
这里 function里面的tr[i]因为变量作用域的关系是不存在的,把它换为当前对象this就解决了。
JavaScript进阶篇
468191 学习 · 21891 问题
相似问题