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