appendChild en IE6 / IE7 no funciona con elementos existentes
-
22-07-2019 - |
Pregunta
Tengo un div que necesita ser movido de un lugar a otro en el DOM. Así que en este momento lo estoy haciendo así:
flex.utils.get('oPopup_About').appendChild(flex.utils.get('oUpdater_About'));
Pero, IE, siendo, bueno, IE, no funciona. Funciona en todos los demás navegadores, solo que no en IE.
Necesito hacerlo de esta manera, ya que el elemento (div) 'oUpdater_About' debe reutilizarse a medida que se completa una y otra vez.
Así que solo necesito poder mover el div alrededor del DOM, appendChild permitirá que esto suceda en todos los navegadores, pero, IE.
¡Gracias de antemano!
Solución
Primero debe eliminar el nodo, antes de poder agregarlo a otro lugar. Un nodo no puede estar en dos lugares al mismo tiempo.
var node = flex.utils.get('oUpdater_About')
node.parentNode.removeChild(node);
flex.utils.get('oPopup_About').appendChild(node);
Otros consejos
asegúrese de clonar oUpdater_About (con node.cloneNode (true)) de esta forma, obtiene una copia y puede reutilizar el fragmento de código dom tantas veces como lo desee (en cualquier navegador)
Esta publicación tiende a sugerir que efectivamente hay un problema con appendChild con respecto a esto:
http://metadeveloper.blogspot.com/2007 /01/ie-7-appendchild-bug.html
¿Has intentado clonarlo, eliminarlo y luego insertar el clon?
James