用IE支持的方式表示item. parentelelement .remove()



据我所知,

remove()
IE中不支持

功能。我有一个JS函数,创建一个div并将其追加到现有的列表。div包含另一个div样式为按钮(这是标题中的"项目",这就是我从HTML中得到它时所说的),其中,点击,从DOM(通过remove())中删除其parentNode(以及因此本身),尽管它仍然"存在"在JavaScript中可以读取它的数据和东西。我需要一种方法从DOM中删除它,以及它的所有子元素。将它的innerHTML设置为0是行不通的,将它的display设置为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兼容。parentNodeparentElement并不完全相同,但parentNodeparentElement不同的情况非常罕见(事实上,我无法想象在正常DOM中不适合使用parentNode的情况)。请参阅DOM parentNode和parentElement之间的区别,了解它们之间的区别。

最新更新