Método insertBefore() do XML DOM

Definição e uso

O método insertBefore() insere um novo nó filho antes do nó filho existente.

Este método retorna o novo nó filho.

Sintaxe:

elementNode.insertBefore(new_node, existing_node)
Parâmetros Descrição
new_node Obrigatório. O nó a ser inserido.
existing_node Obrigatório. Nó existente. Insira o novo nó antes deste nó.

Dicas e notas:

Notas:O Internet Explorer ignora os nós de texto em branco gerados entre os nós (como caracteres de nova linha), enquanto o Mozilla não faz isso. Portanto, no exemplo a seguir, usamos 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 último nó filho não for nó de elemento, ele se move para o nó anterior e verifica se esse nó é nó de elemento. Este processo continua até encontrar o último nó filho que seja nó de elemento. Com este método, obterá o resultado correto no Internet Explorer e no Mozilla.

Para mais informações sobre as diferenças entre o Internet Explorer e o navegador Mozilla, acesse o tutorial XML DOM no CodeW3C.com Navegador DOM esta seção.

instância

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

O seguinte trecho de código cria um novo nó <book> e o insere antes do último elemento <book> do documento:

//verificar se o último nó filho é um nó de elemento
função get_lastchild(n)
{
x=n.lastChild;
while (x.nodeType!=1)
  {
  x=x.previousSibling;
  }
return x;
}
xmlDoc=loadXMLDoc("books.xml");
newNode=xmlDoc.createElement("book");
newTitle=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("A Notebook");
newTitle.appendChild(newText);
newNode.appendChild(newTitle);
xmlDoc.documentElement.insertBefore(newNode,get_lastchild(x));