据我所知,
remove()
IE中不支持功能。我有一个JS函数创建一个div并将其附加到现有列表.div包含另一个div作为按钮设置(这是标题中的'item',这是我从HTML中获取它时所称的),在点击时,它从DOM中删除它的parentNode(并因此自己)(通过remove()),尽管它仍然存在,因为JavaScript可以读取它的数据和内容。我需要一种方法将它从DOM中删除,以及它的所有子元素。设置它的innerHTML等于什么都行不通,也不会将它的显示设置为none。知道如何以与IE兼容的方式做到这一点吗?
任何帮助表示赞赏,请不要使用jQuery或其他框架。
答案 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兼容。 parentElement
和parentNode
并不完全相同,但parentElement
与parentNode
不同的情况非常罕见(事实上,我无法想到普通的DOM,不适合使用FirefoxDriver.PROFILE
)。有关差异的讨论,请参阅Difference between DOM parentNode and parentElement。