AppendChild в IE6/IE7 не работает с существующими элементами.
-
22-07-2019 - |
Вопрос
У меня есть элемент div, который нужно переместить из одного места в другое в DOM.Итак, на данный момент я делаю это так:
flex.utils.get('oPopup_About').appendChild(flex.utils.get('oUpdater_About'));
Но IE, будучи, ну, IE, не работает.Он работает во всех других браузерах, но не в IE.
Мне нужно сделать это так, как элемент (div) 'oUpdater_About' необходимо использовать повторно, поскольку он заполняется снова и снова.
Так что мне просто нужно иметь возможность перемещать div по DOM, AppendChild позволит этому случиться во всех браузерах, но IE.
Заранее спасибо!
Решение
Вы должны сначала удалить узел, прежде чем сможете добавить его где-либо еще. Один узел не может быть в двух местах одновременно. Р>
var node = flex.utils.get('oUpdater_About')
node.parentNode.removeChild(node);
flex.utils.get('oPopup_About').appendChild(node);
Другие советы
обязательно клонируйте oUpdater_About (с помощью node.cloneNode (true)) Таким образом, вы получаете копию и можете использовать dom-сниппет так часто, как хотите (в любом браузере).
Этот пост склонен предполагать, что действительно существует проблема с AppendChild:
http://metadeveloper.blogspot.com/2007/01/ie-7-appendchild-bug.html
Вы пытались клонировать его, удалить, а затем вставить вместо него клон?
Джеймс