2016-02-18 27 views
1

这里是链接到我的codepen看到我所有的代码:http://codepen.io/stevengangano/full/LGvRdq/有人可以解释我的函数deleteButton(this)吗?

我的问题与我的deleteButton函数有关。我很难理解这个概念。

我创建了一个名为deleteButton(item)的删除按钮的函数。我只想知道“item”和“parentNode”在变量remove中代表什么?哪一个是<ul>,哪一个是<li>

解释将不胜感激。谢谢!

+0

请在此处包含相关代码,因为链接可能会更改。 – Brody

回答

2

deleteButton(item)附加到removeButtonthis表示按钮本身的当前节点。

item.parentNode将只是按钮的父母,它是li元素。 remove变量保存此li元素。

再次remove.parentNode将返回li元素的父节点,它是ul元素。

paretNode.removeChild去除从DOM

因此,在这种情况下,UL_ELEMENT.removeChild(LI_ELEMENT)子节点;

0
function deleteButton(item) { 
    var remove = item.parentNode; 
    remove.parentNode.removeChild(remove); 
} 

在你的代码(发布异地)是长

function deleteButton(item) { 
    item.parentNode.parentNode.removeChild(item.parentNode); 
} 

从孩子的祖父母其节点的列表中删除单击项目的父节点。删除按钮的父节点代码为listItem,这意味着LI项目将被删除。

在其他地方张贴代码异地(不好的做法™)删除功能被定义为

removeButton.setAttribute('onclick', 'deleteButton(this);'); 

这是认认真真地很,有趣。它建议在 HTML分析完成后设置文本为的onclick属性,使文本被解析为javascript函数的源代码,该函数将成为属性值。好的,二传手可以做到这一点 - 但事件制定者这样做对我来说是新闻。测试表明它是真实的。

因此,一个答案是设置与文本节点的onclick属性编译文本到功能对象,附加的功能对象作为onclick属性值,其中,当通过点击用品节点称为被点击作为this onclick处理程序的对象。如果调用的函数移除被单击对象的父节点,则在这种情况下,LI元素将被移除。

相关问题