appendChild в IE6 / IE7 не работает с существующими элементами - PullRequest
1 голос
/ 05 августа 2009

У меня есть div, который нужно переместить из одного места в другое в DOM. Итак, на данный момент я делаю это так:

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

Но, IE, ну, IE, это не работает. Работает во всех других браузерах, только не в IE.

Мне нужно сделать это следующим образом, так как элемент (div) 'oUpdater_About' необходимо использовать повторно, поскольку он заполняется снова и снова.

Так что мне просто нужно иметь возможность перемещать div по DOM, appendChild позволит этому происходить во всех браузерах, но, IE.

Заранее спасибо!

Ответы [ 3 ]

2 голосов
/ 05 августа 2009

Вы должны сначала удалить узел, прежде чем сможете добавить его где-либо еще. Один узел не может быть в двух местах одновременно.

var node = flex.utils.get('oUpdater_About')
node.parentNode.removeChild(node);
flex.utils.get('oPopup_About').appendChild(node);
1 голос
/ 05 августа 2009

убедитесь, что клонировали oUpdater_About (с node.cloneNode (true)) Таким образом, вы получаете копию и можете использовать dom-сниппет так часто, как хотите (в любом браузере)

0 голосов
/ 05 августа 2009

В этом посте есть предположение, что действительно существует проблема с appendChild по этому поводу:

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

Вы пытались его клонировать, удалить и вставить вместо него клон?

Джеймс

...