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

来源:9-22 编程练习

qqq_1

2015-11-19 23:57

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

  • 年轻请尽快
    2015-11-27 10:03:52

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

    年轻请尽快 回复Johnli...

    谢谢啦~

    2015-11-28 10:24:37

    共 2 条回复 >

  • 如果巴黎不快乐01234
    2015-11-20 00:19:18

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

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

JavaScript进阶篇

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

468060 学习 · 21891 问题

查看课程

相似问题