问答详情
源自:9-22 编程练习

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

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


提问者:qqq_1 2015-11-19 23:57

个回答

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

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

  • 如果巴黎不快乐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>

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