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

求助,点击删除没反应,哪点错了吗?实在想不出来了

<!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()
      {
        changecolor();  
      }
      
       function changecolor()
       {
         var tbody = document.getElementById("table").lastChild; 
         row = tbody.getElementsByTagName("tr");
         for(var i =1;i<row.length;i++)
         {
             row[i].onmouseover = function()
             {
                 this.style.backgroundColor="#F2F2F2";
             }
             row[i].onmouseout = function()
             {
                 this.style.backgroundColor="#fff";
             }
         } 
       }
       
     // 鼠标移动改变背景,可以通过给每行绑定鼠标移上事件和鼠标移除事件来改变所在行背景色。
         
		
      function addrow(e)
     {
        var tbody = document.getElementById("table").lastChild;
        var tr = document.createElement("tr");
        
        var td = document.createElement("td");
        td.innerHTML = "<input type='text'>";
        tr.appendChild(td);
        
        td = document.createElement("td");
        td.innerHTML = "<input type='text'>";
        tr.appendChild(td);
        
        td = document.createElement("td");
        td.innerHTML = "<a href='javascript:;' onclick='deleterow()'>删除</a>"
        tr.appendChild(td);
        
        tbody.appendChild(tr);
        changecolor();
     }
      // 编写一个函数,供添加按钮调用,动态在表格的最后一行添加子节点;
      
     function deleterow(tx)
    {
        var tbody = document.getElementById("table").lastChild;
        var tr = tx.parentNode.parentNode;
        tbody.removeChild(tr);
    }
        	
   	 
     // 创建删除函数

  </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="deleterow()" >删除</a></td>   <!--在删除按钮上添加点击事件  -->
	   </tr>

	   <tr>
		<td>xh002</td>
		<td>刘小芳</td>
		<td><a href="javascript:;"  onclick="deleterow()" >删除</a></td>   <!--在删除按钮上添加点击事件  -->
	   </tr>  

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


正在回答

2 回答

为什么删除函数里面是var tbody = document.getElementById("table").lastChild;而不是var tbody = document.getElementById("table")?想很久了,求解救啊 ,实在不理解这里面的节点关系

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

Johnlincn

因为浏览器会为table元素自动生成一个tbody 标签,所以tr元素是在tbody里面也就是table.lastChild.
2015-11-28 回复 有任何疑惑可以回复我~
#2

年轻请尽快 回复 Johnlincn

谢谢啦~
2015-11-28 回复 有任何疑惑可以回复我~

<!DOCTYPE html>

<html>

 <head>

  <title> new document </title>  

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

  <script type="text/javascript"> 

      window.onload = function(){

        changecolor();  

      }


       function changecolor()

       {

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

         row = tbody.getElementsByTagName("tr");

         for(var i =1;i<row.length;i++)

         {

             row[i].onmouseover = function()

             {

                 this.style.backgroundColor="#F2F2F2";

             }

             row[i].onmouseout = function()

             {

                 this.style.backgroundColor="#fff";

             }

         } 

       }

        

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

          

         

      function addrow(e)

     {

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

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

         

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

        td.innerHTML = "<input type='text'>";

        tr.appendChild(td);

         

        td = document.createElement("td");

        td.innerHTML = "<input type='text'>";

        tr.appendChild(td);

         

        td = document.createElement("td");

        td.innerHTML = "<a href='javascript:;' onclick='deleterow()'>删除</a>"

        tr.appendChild(td);

         

        tbody.appendChild(tr);

        changecolor();

     }

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

       

     function deleterow(tx)

    {

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

        var tr = tx.parentNode.parentNode;

        tbody.removeChild(tr);

    }

             

       

     // 创建删除函数

 

  </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="deleterow(this)" >删除</a></td>   <!--在删除按钮上添加点击事件  -->

       </tr>

 

       <tr><p></p>

        <td>xh002</td>

        <td>刘小芳</td>

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

       </tr>  

 

       </table>

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

 </body>

</html>

代码我给你改了,可以删除了。。

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

举报

0/150
提交
取消

求助,点击删除没反应,哪点错了吗?实在想不出来了

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