var node=obj.parentNode.parentNode; 这个 parentNode 访问父节点的问题

来源:9-22 编程练习

班大人

2015-02-02 22:01

<!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++)
         {
             bgchange(tr[i]);
         }
	 }
     function bgchange(obj)
     {
         obj.onmouseover=function(){
             obj.style.backgroundColor="#f2f2f2";}
         obj.onmouseout=function(){
             obj.style.backgroundColor="#fff";
     }
     }
      // 编写一个函数,供添加按钮调用,动态在表格的最后一行添加子节点;
      var i=3;
     function add()
     {
         var table=document.getElementById("table");
         var node=document.createElement("tr");
         var th1=document.createElement("th");
         
         th1.innerHTML="xh00"+i; 
         var th2=document.createElement("th");
         th2.innerHTML="第"+i+"个";
         var th3=document.createElement("th");
         th3.innerHTML="<a href='javascript:;' onclick='del(this)'>删除</a>"
         i++;
        node.appendChild(th1);
         node.appendChild(th2);
          node.appendChild(th3);
         table.appendChild(node)
         }
    		
   	 
     // 创建删除函数
     function del(obj)
     {
         var node=obj.parentNode.parentNode;
         node.parentNode.removeChild(node);
     }


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

为什么有两个访问父节点, 

var node=obj.parentNode.parentNode;
        node.parentNode.removeChild(node);   这两句代码  访问父节点,晕了。

写回答 关注

1回答

  • 发发呆哟
    2015-02-02 23:35:15
    已采纳

    this是a 父节点是td 祖父节点是tr

    爱拉舞imo... 回复Jokeny

    你好! 请问 obj 是哪来的?如何传进去的?执行流程搞不明白。背景变换、删除都用到了obj。

    2016-11-22 16:55:55

    共 4 条回复 >

JavaScript进阶篇

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

468194 学习 · 21891 问题

查看课程

相似问题