XML DOM previousSibling property

Definition and Usage

previousSibling This property returns the previous sibling node of the selected element (the previous node at the same tree level).

If such a node does not exist, this property returns null.

Syntax

elementNode.previousSibling
Tips and Notes

Note:Firefox and most other browsers treat whitespace or newlines as text nodes, whereas Internet Explorer does not. Therefore, in the following example, we use a function to check the node type of the previous sibling node.

Element node's nodeType is 1, so if the previous sibling node is not an element node, move to the previous node and check if the node is an element node. This will continue until the previous sibling node (must be an element node) is found. This ensures that the result is correct in all browsers.

Vinkki:Lisätietoja selaimien välisistä eroista löydät XML DOM -oppaasta DOM-selaimet -osasta.

Esimerkki

Esimerkki 1

Seuraava koodi ladataan "books.xml" xmlDoc -muuttujaan ja haetaan ensimmäisen <author> -elementin edellinen samanarjestys solmu:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
   if (this.readyState == 4 && this.status == 200) {
       myFunction(this);
   }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// Tarkista, onko edellinen samanarjestys solmu elementti
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>Edellinen sisar: " + y.nodeName + " = " +
    y.childNodes[0].nodeValue;
}

Kokeile itse

Esimerkki 2

Käytä nextSibling -ominaisuutta saadaksesi solmun seuraavan samanarjestys solmun:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myFunction(this);
    }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// Tarkista, onko seuraava samanarjestys solmu elementti
function get_nextsibling(n) {
    var x = n.nextSibling;
    while (x.nodeType != 1) {
        x = x.nextSibling;
    }
    return x;
}
function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    var x = xmlDoc.getElementsByTagName("title")[0];
    var y = get_nextsibling(x);
    document.getElementById("demo").innerHTML = x.nodeName + " = " + 
    x.childNodes[0].nodeValue +
    "<br>Seuraava sisar: " + y.nodeName + " = " + 
    y.childNodes[0].nodeValue;
}

Kokeile itse