XML DOM previousSibling ominaisuus

Määrittely ja käyttö

previousSibling Ominaisuus palauttaa solmun, joka on suoraan edeltävänä (samaa puurakennetta)

Jos tällaista solmua ei ole olemassa, ominaisuus palauttaa null.

Syntaksi

nodeObject.previousSibling
Vinkit ja huomiot

Huomioitavaa:Firefox ja suurin osa muista selaimista katsoo tyhjyyden tai rivinvaihdon tekstitiippina, kun taas Internet Explorer ei. Alla olevassa esimerkissä tarkistamme edellisen同级节in solmutyyppin funktiolla.

Elementin nodeType on 1, joten jos edellinen同级节点 ei ole elementti, siirtyy seuraavaan solmuun ja tarkistaa, onko solmu elementti. Tämä jatkuu, kunnes löydetään edellinen同级节点 (musti olla elementti). Tämä pitää tuloksen oikeana kaikissa selaimissa.

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

esimerkki

esimerkki 1

Alla oleva koodi ladataan "books.xml" xmlDoc:iin ja haetaan ensimmäisen <author> -elementin edellinen sisarala:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
   if (this.readyState == 4 && this.status == 200) {
       myFunction(this);
   }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// 检查前一个同级节点是否是元素节点
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 sisarala: " + y.nodeName + " = " +
    y.childNodes[0].nodeValue;
}

Kokeile itse

esimerkki 2

获取节点的下一个同级节点:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myFunction(this);
    }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// 检查下一个同级节点是否是元素节点
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 veljes: " + y.nodeName + " = " + 
    y.childNodes[0].nodeValue;
}

Kokeile itse