XML DOM anteriorPropriedade de irmãos
❮ Objeto Elemento
Exemplo
O fragmento de código a seguir carrega " books.xml " em xmlDoc e obtém o nó irmão anterior do primeiro elemento <author>:
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
myFunction(this);
}
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
//
Check if the previous sibling node is an element node
function
get_previoussibling(n) {
var x = n.previousSibling;
while (x.nodeType != 1) {
x =
x.previousSibling;
}
return x;
}
function myFunction(xml) {
var xmlDoc = xml.responseXML;
var x = xmlDoc.getElementsByTagName("author")[0];
var y
= get_previoussibling(x);
document.getElementById("demo").innerHTML
= x.nodeName + " = " +
x.childNodes[0].nodeValue +
"<br>Previous sibling: " + y.nodeName + " = " +
y.childNodes[0].nodeValue;
}
A saída do código acima será:
author = Giada De Laurentiis
Previous sibling: title = Everyday Italian
Definição e uso
A propriedade previousSibling retorna o nó irmão anterior (o nó anterior no mesmo nível de árvore) do elemento selecionado
Se não houver tal nó, esta propriedade retornará null.
Sintaxe
elementNode.previousSibling
Dicas e Notas
Observação: o Firefox e a maioria dos outros navegadores tratarão espaços em branco vazios ou novas linhas como nós de texto, o Internet Explorer não. Assim, no exemplo abaixo, temos uma função que verifica o tipo de nó do nó irmão anterior.
Os nós de elemento têm um nodeType de 1, portanto, se o nó irmão anterior não for um nó de elemento, ele se moverá para o nó anterior e verificará se esse nó é um nó de elemento. Isso continua até que o nó irmão anterior (que deve ser um nó elemento) seja encontrado. Desta forma, o resultado estará correto em todos os navegadores.
Dica: Para ler mais sobre as diferenças entre navegadores, visite nosso capítulo Navegadores DOM em nosso Tutorial XML DOM.
Demonstrações de teste você mesmo
❮ Objeto Elemento