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

来源:9-22 编程练习

惊神病

2018-01-09 18:06

<!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回答

  • 若水life
    2018-01-14 15:56:03
    已采纳

     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

    若水life

    也许是里面的参数寻找不到对象吧?我刚学js,现在也是新手

    2018-01-14 19:02:52

    共 2 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468196 学习 · 21891 问题

查看课程

相似问题