Właściwość previousSibling w XML DOM
Definicja i użycie
Właściwość previousSibling zwraca poprzedniego brata węzła wybranego węzła (poprzedni węzeł w tym samym poziomie drzewa).
Jeśli taki węzeł nie istnieje, ta właściwość zwraca null.
Gramatyka:
elementNode.previousSibling
Wskazówki i uwagi
Uwaga:Internet Explorer ignoruje węzły tekstowe między węzłami (np. znaki nowej linii), podczas gdy Mozilla nie robi tego. Dlatego w poniższych przykładach używamy funkcji do sprawdzania typu węzła poprzedniego brata węzła.
Węzły elementowe mają typ węzła 1, więc jeśli poprzedni brat węzła nie jest węzłem elementu, przenieś się do poprzedniego węzła i sprawdź, czy jest to węzeł elementu. Ten proces kontynuuje się, aż znajdziesz poprzedniego brata węzła. Ta metoda zapewnia poprawne wyniki zarówno w Internet Explorer, jak i w Mozilla.
Dla więcej informacji na temat różnic między przeglądarkami IE a Mozilla, odwiedź Przeglądarka DOM w tym rozdziale.
przykład
W wszystkich przykładach użyjemy pliku XML books.xml, oraz funkcji JavaScript loadXMLDoc().
Poniższy fragment kodu uzyskuje poprzedniego brata węzła pierwszego elementu <author> w dokumencie XML:
//sprawdź, czy poprzedni brat węzła jest węzłem elementu
function get_previoussibling(n)
{
var x=n.previousSibling;
while (x.nodeType!=1)
{
x=x.previousSibling
;
}
return x;
}
xmlDoc=loadXMLDoc("books.xml");
var x=xmlDoc.getElementsByTagName("author")[0];
document.write(x.nodeName);
document.write(" = ");
document.write(x.childNodes[0].nodeValue);
var y=get_previoussibling(x);
document.write("<br />Poprzedni węzeł: ");
document.write(y.nodeName);
document.write(" = ");
document.write(y.childNodes[0].nodeValue);
Wynik powyższego kodu:
author = Giada De Laurentiis Poprzedni węzeł: title = Everyday Italian