tengo HTML como la siguiente:Usar JavaScript insertBefore() para insertar antes de un TextNode?
<div id="move-me">
<a href="#">I'm a link</a>
</div>
<div id="new-parent">
Some plain text.
</div>
Estoy intentando escribir JavaScript que mover todo el movimiento #-me div dentro de la div # new-matriz, por encima de el texto, así:
<div id="new-parent">
<div id="move-me">
<a href="#">I'm a link</a>
</div>
Some plain text.
</div>
Aquí está el código JavaScript que tengo:
function moveDiv() {
var moveable = document.getElementById('move-me');
var newParent = document.getElementById('new-parent');
newParent.parentNode.insertBefore(moveable, newParent.firstChild);
}
estoy usando Firebug para depurar, y puedo ver que newParent.firstChild
es un textNode, pero siempre recibir el siguiente error:
Node was not found" code: "8
newParent.parentNode.insertBefore(moveable, newParent.firstChild);
Parece que insertBefore
requiere un nodo elemento y no funcionarán en un nodo de texto ... es así? Si es así, ¿hay otro buen método para hacer esto?
Nota: No puedo modificar o limpiar el HTML para incluir etiquetas de párrafo o eliminar el espacio en blanco.
Gracias, gracias. Tu explicación ayuda mucho; También lo he mezclado en appendChild, creo. –
Veo - Insertar Antes debe invocarse en el contenedor/nodo padre que contiene el nodo que deseo insertar antes. – kermit