IE6 / IE7中的appendChild不适用于现有元素

时间:2009-08-05 10:36:17

标签: javascript internet-explorer dom appendchild

我有一个div需要在DOM中从一个地方移动到另一个地方。所以目前我这样做:

flex.utils.get('oPopup_About').appendChild(flex.utils.get('oUpdater_About'));

但是,IE,好吧,IE,它不起作用。它适用于所有其他浏览器,而不是IE浏览器。

我需要这样做,因为元素(div)'oUpdater_About'需要重复使用,因为它一遍又一遍地填充。

所以我只需要能够在DOM周围移动div,appendChild会让这种情况发生在所有浏览器中,但是,IE。

提前致谢!

3 个答案:

答案 0 :(得分:2)

您必须首先删除该节点,然后才能将其附加到其他任何位置。 一个节点不能同时在两个地方。

var node = flex.utils.get('oUpdater_About')
node.parentNode.removeChild(node);
flex.utils.get('oPopup_About').appendChild(node);

答案 1 :(得分:1)

确保克隆oUpdater_About(使用node.cloneNode(true)) 通过这种方式,您可以获得副本并可以根据需要重复使用dom-snippet(在任何浏览器中)

答案 2 :(得分:0)

这篇文章倾向于表明appendChild确实存在这方面的问题:

http://metadeveloper.blogspot.com/2007/01/ie-7-appendchild-bug.html

您是否尝试过克隆,删除它,然后插入克隆?

詹姆斯