Javascript 以IE支持的方式表达item.parentElement.remove()

Javascript 以IE支持的方式表达item.parentElement.remove(),javascript,html,internet-explorer,javascript-events,Javascript,Html,Internet Explorer,Javascript Events,据我所知 remove() IE中不支持函数。我有一个JS函数,可以创建一个div并将其附加到现有列表中。该div包含另一个样式为按钮的div(这是标题中的“item”,这是我从HTML中获得它时所称的),单击该div后,会将其父节点(以及它本身)从DOM中移除(通过remove()),尽管它仍然“存在”,JavaScript可以读取它的数据和内容。我需要一种从DOM中删除它以及它的所有子元素的方法。将其innerHTML设置为nothing将不起作用,也不会将其显示设置为none。你知道如何

据我所知

remove()
IE中不支持函数。我有一个JS函数,可以创建一个div并将其附加到现有列表中。该div包含另一个样式为按钮的div(这是标题中的“item”,这是我从HTML中获得它时所称的),单击该div后,会将其父节点(以及它本身)从DOM中移除(通过remove()),尽管它仍然“存在”,JavaScript可以读取它的数据和内容。我需要一种从DOM中删除它以及它的所有子元素的方法。将其innerHTML设置为nothing将不起作用,也不会将其显示设置为none。你知道如何与IE兼容吗


感谢您的帮助,请不要使用jQuery或其他框架。

任何时候只要使用
.remove()
,您都可以使用
.removeChild()
,而只需使用稍微不同的代码即可

因此,如果要删除给定节点的父节点,请执行以下操作:

item.parentElement.remove();
然后,您可以改为执行以下操作:

var p = item.parentNode;
p.parentNode.removeChild(p);

如果要将其放入实用程序函数中,可以执行以下操作:

function removeNode(node) {
    node.parentNode.removechild(node);
}
在您的情况下,您可以这样称呼它,而不是
item.parentElement.remove()

removeNode(item.parentNode);

请注意,我使用的是
parentNode
而不是
parentElement
,因为您似乎希望IE与旧版本的IE兼容。
parentNode
parentElement
并不完全相同,但在
parentNode
parentElement
不同的地方非常罕见(事实上,我想不出在普通DOM中使用
parentNode
是不合适的)。有关差异的讨论,请参阅。

MDN docs@Leshy-此答案解决了您的问题吗?如果是,请勾选答案左侧的绿色复选标记,将其标记为已接受答案,以向社区表明您的问题已得到回答,然后您和提供答案的人都将赢得一些声誉可以在StackOverflow上获得更多特权的要点。如果您的问题尚未解决,请解释您还对什么感到困惑。