这里是链接到我的codepen看到我所有的代码:http://codepen.io/stevengangano/full/LGvRdq/有人可以解释我的函数deleteButton(this)吗?
我的问题与我的deleteButton函数有关。我很难理解这个概念。
我创建了一个名为deleteButton(item)的删除按钮的函数。我只想知道“item”和“parentNode”在变量remove中代表什么?哪一个是<ul>
,哪一个是<li>
?
解释将不胜感激。谢谢!
这里是链接到我的codepen看到我所有的代码:http://codepen.io/stevengangano/full/LGvRdq/有人可以解释我的函数deleteButton(this)吗?
我的问题与我的deleteButton函数有关。我很难理解这个概念。
我创建了一个名为deleteButton(item)的删除按钮的函数。我只想知道“item”和“parentNode”在变量remove中代表什么?哪一个是<ul>
,哪一个是<li>
?
解释将不胜感激。谢谢!
deleteButton(item)
附加到removeButton
。this
表示按钮本身的当前节点。
item.parentNode
将只是按钮的父母,它是li
元素。 remove
变量保存此li
元素。
再次remove.parentNode
将返回li
元素的父节点,它是ul
元素。
paretNode.removeChild
去除从DOM
因此,在这种情况下,UL_ELEMENT.removeChild(LI_ELEMENT)子节点;
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元素将被移除。
请在此处包含相关代码,因为链接可能会更改。 – Brody