XML DOM compareDocumentPosition() -menetelmä

Määrittely ja käyttö

compareDocumentPosition() Vertailu DOM-hierarkian (asiakirja) kahden solmun sijainnin.

Syntaksi

nodeObject.compareDocumentPosition(node)

Parametrit

Parametrit Kuvaus
node Välttämätön. Node-objekti. Määrittää solmun, jota vertaillaan nykyisen solmun kanssa.

Tekninen yksityiskohta

DOM-versio: Core Level 3 Node Object
Palautusarvo:

Numerot, jotka ilmaisevat kahden solmun suhteellisen sijainnin. Mahdolliset palautusarvot ovat:

  • 1 - Ei yhteyttä, kaksi solmua eivät kuulu samaan asiakirjaan.
  • 2 - Määritetty solmu sijaitsee nykyisen solmun edellä.
  • 4 - Määritetty solmu seuraa nykyistä solmua.
  • 8 - Määritetty solmu sisältää nykyisen solmun.
  • 16 - Määritetty solmu sisältyy nykyiseen solmuun.
  • 32 - Määritetty solmu ja nykyinen solmu eivät ole yhteistä isosolmua, tai kaksi solmua ovat saman solmun eri ominaisuudet.

Huomaa:Palautusarvo voi olla arvojen yhdistelmä. Esimerkiksi palautusarvo 20 tarkoittaa, että määritetty solmu sisältyy nykyiseen solmuun (16) ja se seuraa nykyistä solmua (4).

Esimerkki

Seuraava koodi luo "books.xml" xmlDoc:iin ja vertailee kahden solmun (ensimmäisen ja kolmannen <book>-solmun) sijaintia DOM-rakenteessa:

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 myFunction(xml) {
    var xmlDoc = xml.responseXML;
    var x = xmlDoc.getElementsByTagName('book')[0];
    var y = xmlDoc.getElementsByTagName('book')[2];
    document.getElementById("demo").innerHTML =
    x.compareDocumentPosition(y);
}

Kokeile itse

Useimmat selaimet katsovat tyhjät tai uudet rivit tekstin solmuiksi, mutta IE 9 ja aikaisemmat versiot eivät. Siksi yllä olevassa esimerkissä useimmat selaimet tulostavat 4, mutta IE 9 ja aikaisemmat versiot tulostavat 2.

Selaimen tuki

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
Tuki Tuki Tuki Tuki Tuki

Kaikki suosituimmat selaimet tukevat compareDocumentPosition() -menetelmää.

Huomautus:Internet Explorer 9 ja aikaisemmat versiot eivät tue tätä menetelmää.