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上获得更多特权的要点。如果您的问题尚未解决,请解释您还对什么感到困惑。