求教大神删除函数三种表述的区别

来源:9-22 编程练习

weixin_慕勒2266735

2019-02-15 15:39

// 创建删除函数

     function del(tr){

         var del = tr.parentNode.parentNode;

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

         tb.removeChild(del);  

     }

    /* function del(tr){

         var del = tr.parentNode.parentNode

         del.parentNode.removeChild(del); 

     }*/

第一种表述运行报错,第二种可以,document.getElementById("table")跟 del.parentNode是有什么区别呢?


另外,官方的代码是这样写的:

function deleteRow(obj){

var tbody = document.getElementById('table').lastChild;

var tr = obj.parentNode.parentNode;

tbody.removeChild(tr);

怎么也弄不明白定义tbody后面为何要加lastChild,他应该是tr的父节点才对啊!

写回答 关注

2回答

  • weixin_慕勒2266735
    2019-02-18 11:31:12

    终于弄明白了,其实table下面隐藏tbody节点,不写出来系统也会默认有,这样所有问题都弄明白了

  • 蝉时雨丶0909
    2019-02-17 21:46:09

    你第一种在onclick绑定函数时,参数要写this,指向当前的a元素,你方法写得没问题。

    del.parentNode就等于table元素。意思a元素的父元素(td)的父元素(tr)的父元素(table)

    官方代码我没看,不过单纯看你这一段确实是错的。

JavaScript进阶篇

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

468727 学习 · 22064 问题

查看课程

相似问题