消息关闭
    暂无新消息!
<!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(){
          var tr=document.getElementsByTagName("tr");
          for(var i= 0;i<tr.length;i++)
          {
              bgcChange(tr[i]);
          }
     // 鼠标移动改变背景,可以通过给每行绑定鼠标移上事件和鼠标移除事件来改变所在行背景色。
      }
 function bgcChange(obj)
     {
        obj.onmouseover=function(){
            obj.style.backgroundColor="#f2f2f2";
        }
        obj.onmouseout=function(){
            obj.style.backgroundColor="#fff";
        }
 }

 // 编写一个函数,供添加按钮调用,动态在表格的最后一行添加子节点;
     var num=2;
     function add(){
        num++;
        var tr=document.createElement("tr");
        var xh=document.createElement("td");
        var xm=document.createElement("td");
        xh.innerHTML="xh00"+num;
        xm.innerHTML="第"+num+"学生";
        var del=document.createElement("td");
        del.innerHTML="<a href='javascript:;' onclick='del(this)' >删除</a>";
        var tab=document.getElementById("table");
        tab.appendChild(tr);
        tr.appendChild(xh);
        tr.appendChild(xm);
        tr.appendChild(del);
        var tr = document.getElementsByTagName("tr");
          for(var i= 0;i<tr.length;i++)
          {
              bgcChange(tr[i]);
          }
     }


     // 创建删除函数
     function del(obj)
     {
         var tr=obj.parentNode.parentNode;
         tr.parentNode.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="del(this);">删除</a></td>   <!--在删除按钮上添加点击事件  -->
   </tr>

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

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

4个回答

︿ 2
你这个问题是
你没有理解
数据的携带者
和展示者的关系

你可以写一个变量数组
存储数据
然后根据数据
展示节点
︿ 1
这里第51行的
var tr=obj.parentNode.parentNode;
         tr.parentNode.removeChild(tr);

obj是当前哪个对象,返回两个父亲节点后是哪个对象,tr是这行吗?第二行返回自己的父亲然后再删除父亲的儿子(就是自己)吗?

请大神讲解,这点有点迷糊

运行结果图是这个
︿ 0
obj是a元素
obj.parentNode是td元素
obj.parentNode.parentNode是tr元素

removeChild是移除子元素的方法,因为只能移除子元素,如果要移除元素自身就需要先用parentNode获取它的父元素。由它的父元素来调用removeChild移除它。