无法删除或者添加?????

来源:9-22 编程练习

沐翊

2019-11-04 13:21

<!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(){

                  

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

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

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

            tr[i].onmouseover =  function(){

                this.style.backgroundColor = "#f2f2f2";

            }

            tr[i].onmouseout = function(){

                this.style.backgroundColor = "#fff";

            }    

        }

   }

     

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

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

    var num = 2;

    function createTr(){

      num++;

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

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

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

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

      td01.innerHTML = "xh00"+num;

      td02.innerHTML = "XXXX"+num;

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

      table.appendChild(tr);

      tr.appendChild(td01);

      tr.appendChild(td02);

      tr.appendChild(td03);

    }   

     

     // 创建删除函数

    function del(){

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

      table.removeChild(table.childNodes[tr.length-1]);

    }

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

     </tr>


     <tr>

    <td>xh002</td>

    <td>刘小芳</td>

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

     </tr>  


     </table>

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

 </body>

</html>


写回答 关注

2回答

  • 晓之蛇
    2019-11-08 10:33:02

    删除函数需要传入参数,定位删除的是哪一行:

    1. 触发事件中onclick="del()"改为onclick="del(this)"

    2. del方法

     function del(obj){      
         table = obj.parentNode.parentNode.parentNode; //定位到table节点     
         var tr = obj.parentNode.parentNode; //定位到与a标签在同一行的tr节点      
         table.removeChild(tr);    
     }


  • 晓之蛇
    2019-11-08 10:16:54

    无法添加问题的解决方案:把整个script代码放到</body>标签后面

JavaScript进阶篇

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

468194 学习 · 21891 问题

查看课程

相似问题