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

时间:2015-09-22 23:18:36

标签: javascript html internet-explorer javascript-events

据我所知,

remove()
IE中不支持

功能。我有一个JS函数创建一个div并将其附加到现有列表.div包含另一个div作为按钮设置(这是标题中的'item',这是我从HTML中获取它时所称的),在点击时,它从DOM中删除它的parentNode(并因此自己)(通过remove()),尽管它仍然存在,因为JavaScript可以读取它的数据和内容。我需要一种方法将它从DOM中删除,以及它的所有子元素。设置它的innerHTML等于什么都行不通,也不会将它的显示设置为none。知道如何以与IE兼容的方式做到这一点吗?

任何帮助表示赞赏,请不要使用jQuery或其他框架。

1 个答案:

答案 0 :(得分:0)

只要您使用.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而不是parentNode,因为您似乎希望IE与旧版本的IE兼容。 parentElementparentNode并不完全相同,但parentElementparentNode不同的情况非常罕见(事实上,我无法想到普通的DOM,不适合使用FirefoxDriver.PROFILE)。有关差异的讨论,请参阅Difference between DOM parentNode and parentElement