为了账号安全,请及时绑定邮箱和手机立即绑定

为什么新添加的行没有鼠标经过事件

 

    window.onload=function(){

var tr = document.getElementsByTagName("tr");

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

colorchange(tr[i]);

}

function colorchange(obj){

 obj.onmouseover=function(){

 obj.style.backgroundColor="#f2f2f2";

 }

 obj.onmouseout=function(){

 obj.style.backgroundColor="#fff";

  }  

 

}

 

}

             

      // 编写一个函数,供添加按钮调用,动态在表格的最后一行添加子节点;

     function add(){

         var objnode = document.getElementById("table");

         var newnode= document.createElement("tr");

         

         var newnode1=document.createElement("td");

         newnode1.innerHTML="xh003";

        

         var newnode2=document.createElement("td");

         newnode2.innerHTML="李晓红";

         

         var newnode3=document.createElement("td");

         newnode3.innerHTML="<a href='javascript:;' onclick='del(this)' >删除</a>";

objnode.appendChild(newnode);

newnode.appendChild(newnode1);

newnode.appendChild(newnode2);

         newnode.appendChild(newnode3);

         

var tr = document.getElementsByTagName("tr");

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

            {

colorchange(tr[i]);

}

         

     }


正在回答

3 回答

每次删除跟增加行数之后,表格的行数都会发生变化,colorchange这个函数在行数发生变化时并没有及时得到更新,它获取到的数据依旧是之前的数据,解决方式:将所有与鼠标经过事件相关的数据再次封装到一个新的函数里,窗口加载完毕时调用这个函数,在add()与del()函数里也对其进行调用。

0 回复 有任何疑惑可以回复我~

可能是函数执行顺序问题你获取了trs数组之后再添加不就没有获取新添加的 先调用 add()函数在获取试试

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么新添加的行没有鼠标经过事件

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信