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));