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

JavaScript进阶篇9-22编程练习,创建删除函数这里不会写,其他同学代码有点看不懂,麻烦讲解下

 // 创建删除函数
     function del(obj)
     {
         var tr=obj.parentNode.parentNode;
         tr.parentNode.removeChild(tr);
     }

麻烦懂的同学给讲解下,这样写是什么意思啊,谢谢~

正在回答

2 回答

DOM操作懂吗?或者说文档树,你看那个表格,它其实是一棵文档树,删除是一个a标签,删除上面有一个老爸(parentNode)td,td上面又有一个老爸(parentNode)tr对吧,以此类推,这里del()函数是把a标签(删除)包装成了一个对象(obj),函数里面定义一个tr对象,它应用了obj的老爸的老爸的属性,刚好就是html里面的tr,然后这个tr对象的老爸采用了一个removeChild()的方法(就是把儿子干掉了)这个儿子的名字刚好叫tr,所以就实现了删除的功能了

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

Missvia 提问者

非常感谢!
2015-12-24 回复 有任何疑惑可以回复我~
#2

迷途的马尔斯 回复 Missvia 提问者

O(∩_∩)O哈哈~
2015-12-24 回复 有任何疑惑可以回复我~
#3

开普勒

var tr=obj.parentNode.parentNode; tr.parentNode.removeChild(tr); 为什么不能这样写呢 obj.parentNode.parentNode.parentNode.removeChild(tr);
2015-12-31 回复 有任何疑惑可以回复我~
#4

迷途的马尔斯 回复 开普勒

这里传进来的obj是一个引用对象来的,你在引用下面是找不到tr这个东西的,只能找到tr对应的引用
2015-12-31 回复 有任何疑惑可以回复我~
查看1条回复

传进来的obj是“删除”这个a标签对象,obj的父节点是td(单元格),td的父节点是tr(行),所以tr变量就是当前点击的a标签所在的行对象,这个行对象tr的父节点就是表格,所以tr.parentNode.removeChild(tr);就是从表格里移除这一行。

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

Missvia 提问者

谢谢谢谢
2015-12-24 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

JavaScript进阶篇9-22编程练习,创建删除函数这里不会写,其他同学代码有点看不懂,麻烦讲解下

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