Método removeChild() del XML DOM
Definición y uso
El método removeChild() puede eliminar un nodo de la lista de subnodos.
Si se elimina con éxito, este método puede devolver el nodo eliminado, de lo contrario, devuelve NULL.
Sintaxis:
nodeObject.removeChild(node)
Parámetros | Descripción |
---|---|
node | Obligatorio. Especifica el nodo que se debe eliminar. |
Avisos y notas
Notas:Internet Explorer ignora los nodos de texto en blanco generados entre los nodos (por ejemplo, los símbolos de nueva línea), mientras que Mozilla no hace esto. Por lo tanto, en el siguiente ejemplo, utilizaremos una función para verificar el tipo de nodo del último subnodo.
El tipo de nodo del nodo de elemento es 1, por lo que si el primer subnodo no es un nodo de elemento, se desplazará al siguiente nodo y continuará verificando si este nodo es un nodo de elemento. Este proceso continuará hasta que se encuentre el primer subnodo de elemento. De esta manera, podemos obtener el método correcto en Internet Explorer y Mozilla.
Aviso:Para obtener más información sobre las diferencias entre XML DOM en IE y Mozilla, visite nuestro Navegador DOM capítulo.
ejemplo
En todos los ejemplos, utilizaremos el archivo XML books.xmly las funciones de JavaScript loadXMLDoc().
El siguiente fragmento de código puede eliminar el último nodo hijo del primer elemento <book>:
//comprobar si el último nodo hijo es un nodo de elemento
function get_lastchild(n)
{
var x=n.lastChild;
while (x.nodeType!=1)
{
x=x.previousSibling;
}
return x;
}
xmlDoc=loadXMLDoc("books.xml");
var x=xmlDoc.getElementsByTagName("book")[0];
deleted_node=x.removeChild(get_lastchild(x))
;
document.write("Nodo eliminado: " + deleted_node.nodeName);
Salida:
Nodo eliminado: precio