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

这里实现背景变色的,就是这样写的话会提示Cannot read property 'style' of undefined,为什么?

<!DOCTYPE html>

<html>

 <head>

  <title> new document </title>  

  <meta http-equiv="Content-Type" content="text/html; charset=gbk"/>   

  <script type="text/javascript"> 

  

      window.onload = function(){

                  

     // 鼠标移动改变背景,可以通过给每行绑定鼠标移上事件和鼠标移除事件来改变所在行背景色。

        rh = document.getElementsByTagName("tr");

//alert(rh.length);

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

//colorchange(rh[i]);

rh[i].onmouseover=function(){

rh[i].style.backgroundColor="#f2f2f2";

}

rh[i].onmouseout=function(){

rh[i].style.backgroundColor="#fff";

}

}

     

 

}

//这个函数调用实现的功能正常

 

function colorchange(obj){

 

obj.onmouseover=function(){

obj.style.backgroundColor="#f2f2f2";

}

obj.onmouseout=function(){

obj.style.backgroundColor="#fff";

}

}

     

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

     function addrow(){

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

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

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

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

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

col3.innerHTML="<a href=\"javascript:;\"onclick=\"delrow(this)\" >删除</a>";

row.appendChild(col1);

row.appendChild(col2);

row.appendChild(col3);

table.appendChild(row);  

 

}

   

     

     // 创建删除函数

     function delrow(obj){

todel=obj.parentNode.parentNode;

//document.getElementById("table").removeChild(todel);

//这里在删除前两个节点的时候居然提示table不是他们的父节点

todel.parentNode.removeChild(todel);

}


  </script> 

 </head> 

 <body> 

   <table border="1" width="50%" id="table">

   <tr>

<th>学号</th>

<th>姓名</th>

<th>操作</th>

   </tr>  


   <tr>

<td>xh001</td>

<td>王小明</td>

<td><a href="javascript:;"onclick="delrow(this)" >删除</a></td>   <!--在删除按钮上添加点击事件  -->

   </tr>


   <tr>

<td>xh002</td>

<td>刘小芳</td>

<td><a href="javascript:;"onclick="delrow(this)" >删除</a></td>   <!--在删除按钮上添加点击事件  -->

   </tr>  


   </table>

   <input type="button" value="添加一行" onclick="addrow()" />   <!--在添加按钮上添加点击事件  -->

 </body>

</html>


正在回答

1 回答

 window.onload = function(){

                  

     // 鼠标移动改变背景,可以通过给每行绑定鼠标移上事件和鼠标移除事件来改变所在行背景色。

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


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

    rh[i].onmouseover=function(){

    this.style.backgroundColor="#f2f2f2";

}

rh[i].onmouseout=function(){

this.style.backgroundColor="#fff";

}

}

     

 

}

这样就行了,好像参数传不进去colorchange

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

惊神病 提问者

那个colorchang()函数可以用,这里把数组和下标改为this后的确可以用,我已经采纳了你的答案。但是你能不能回答一下为什我那个数组下标的形式显示不出来?
2018-01-14 回复 有任何疑惑可以回复我~
#2

若水life

也许是里面的参数寻找不到对象吧?我刚学js,现在也是新手
2018-01-14 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

这里实现背景变色的,就是这样写的话会提示Cannot read property 'style' of undefined,为什么?

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