Método insertBefore() do XML DOM

Manual de referência do objeto Node

Definição e uso

O método insertBefore() pode inserir um novo nó filho antes de um nó filho existente.

Este método pode retornar o novo nó filho.

Sintaxe:

insertBefore(newchild, refchild)
Parâmetros Descrição
newchild Inserir novo nó
refchild Inserir novo nó antes deste nó

Dicas e notas

Nota:O Internet Explorer ignorará os nós de texto em branco gerados entre os nós (por exemplo, sinais de nova linha), enquanto o Mozilla não fará isso. Portanto, no exemplo a seguir, usaremos uma função para verificar o tipo de nó do último nó filho.

O tipo de nó do nó de elemento é 1, portanto, se o primeiro nó filho não for um nó de elemento, ele será movido para o próximo nó e continuará a verificar se este nó é um nó de elemento. O processo continuará até que o primeiro nó filho de elemento seja encontrado. Com esse método, podemos obter o método correto no Internet Explorer e no Mozilla.

Dica:Para mais informações sobre as diferenças entre XML DOM no IE e no Mozilla Navigator, acesse nossa Navegador DOM Capítulo.

Exemplo

Em todos os exemplos, usaremos o arquivo XML books.xmle também a função JavaScript loadXMLDoc().

O fragmento abaixo pode criar um novo nó <book> e inserir este nó antes do último elemento <book> do documento:

//verificar se o último nó filho é um nó de elemento
function get_lastchild(n)
{
var x=n.lastChild;
while (x.nodeType!=1)
{
x=x.previousSibling;

return x;

xmlDoc=loadXMLDoc("books.xml");
var newNode=xmlDoc.createElement("book");
var newTitle=xmlDoc.createElement("title");
var newText=xmlDoc.createTextNode("A Notebook");
newTitle.appendChild(newText);
newNode.appendChild(newTitle);
xmlDoc.documentElement.insertBefore(newNode, get_lastchild(x));

Manual de referência do objeto Node