gpt4 book ai didi

javascript - Internet Explorer 和 removeChild()

转载 作者:行者123 更新时间:2023-11-30 06:03:39 24 4
gpt4 key购买 nike

我一直在使用 elem.removeChild() 从我的文档中删除元素,但保存了对该元素的 JavaScript 引用,以便我可以在适当的时候将它们添加回去。在 Firefox 和 Chrome 中运行良好。

现在我注意到在 IE7 上,这些元素在此过程中被破坏,所有子元素都被移除。当我将它们添加回同一个父元素时,它们是相同类型的元素并且保留了类名之类的东西,但它们没有子元素。

这是预期的行为吗?我知道我可以改变我的应用程序以不同的方式做事,但这需要好几个小时的返工,我显然想避免这种情况。我一直认为可以通过使用 removeChild() 或将父级的 innerHTML 设置为空字符串来删除元素,只要我有对元素的引用(即指向元素的变量,而不仅仅是元素 ID),可以自由添加和删除元素而不会弄乱元素。

这是 IE 的错误吗,我是否感到困惑并且发生了其他事情,或者这是已知和预期的行为?

最佳答案

removeChild 的规范没有明确说明被删除节点的子节点应该与该节点一起保留,尽管在我看来他们应该这样做是合乎逻辑的,而且显然这也是 FF 和 Chrome 开发人员的决定。如果父级的 innerHTML 设置为空字符串,我不知道规范怎么说,但在我看来,这种方式有点像说“删除那里的任何东西”,所以在那种情况下,我认为这是合理的浏览器丢弃 innerHTML 中的所有内容,即使代码中存在对某些已删除元素的引用。

关于javascript - Internet Explorer 和 removeChild(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6644088/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com