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

function del(obj) 函数中为什么会找tr的祖父节点,另外调用时onclick="del(this);"中的"this"有什么含义?

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

正在回答

1 回答

1.head标签中的meta可改为,不然可能会出现中文乱码的问题:

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

2.obj是整个a标签的内容 【可以console.log(obj),在调用del方法后,控制台就可以看到内容】,a标签的祖父节点是tr,要删除一整行,就要把对应行的tr节点下的内容删除掉。

3.this表示对应这一行的a标签吧,调用del方法,通过对应行的a标签定位并删除对应这一行的tr

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

举报

0/150
提交
取消

function del(obj) 函数中为什么会找tr的祖父节点,另外调用时onclick="del(this);"中的"this"有什么含义?

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