js的隔行换色问题 我想实现鼠标覆盖上去 表格的tr背景颜色变化 而鼠标移开的时候,表格恢复隔行换色; 20

鼠标移开的时候我想恢复隔行换色的效果;JS代码如下:可为什么实现不了,高手指教functionlineChange(){varlines=document.getElem... 鼠标移开的时候我想恢复隔行换色的效果;
JS代码如下:可为什么实现不了,高手指教
function lineChange(){
var lines=document.getElementsByTagName("tr");

for(var i=0;i<lines.length;i++){

lines[i].onmouseover=function(){
this.style.background="blue";

}
lines[i].onmouseout=function(){
if(i%2==0){
this.style.background="#fff";
}else{
this.style.background="red";
}

}
}

}
展开
 我来答
丶柃真幸机异其13
2012-06-11 · TA获得超过105个赞
知道小有建树答主
回答量:102
采纳率:0%
帮助的人:96.1万
展开全部
我给你改了一下
function lineChange(){
var lines=document.getElementsByTagName("tr");
for(var i=0;i<lines.length;i++){
if(i%2==0){
lines[i].style.background="#fff";
lines[i].id=i;
}else{
lines[i].style.background="red";
lines[i].id=i;
}
lines[i].onmouseover=function(){
this.style.background="blue";

}
lines[i].onmouseout=function(){
var i=this.id;
if(i%2==0){
this.style.background="#fff";
}else{
this.style.background="red";
}

}
}
}
seavan
2012-06-13 · TA获得超过525个赞
知道小有建树答主
回答量:269
采纳率:100%
帮助的人:105万
展开全部
ls已经说得很对了。这个问题经常出现,就是在初始化onmouseout的时候,函数里面的i是留的是一个指向i的变量,(和C里面的指针差不多,不知道js里面怎么称呼)。

所以你只要在那个for循环 外面 加一个 i=10; 然后再onmouseout里面 alert(i) 你就会发现他们都是10.。。。所以 ls的方法就是让你注意给每一个tr分配一个id,用id来记录你预期的那个i。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式