Metode XML DOM compareDocumentPosition()

Definisi dan penggunaan

compareDocumentPosition() Bandingkan kedudukan kedua buah nod dalam struktur DOM (dokumen).

Sintaksis

nodeObject.compareDocumentPosition(node)

Parameter

Parameter Deskripsi
node Diperlukan. Objek Node. Menentukan node yang akan dibandingkan dengan node saat ini.

Detil teknis

Versi DOM: Core Level 3 Node Object
Nilai kembalian:

Angka, yang menunjukkan posisi relatif kedua node. Nilai kembalian yang mungkin adalah:

  • 1 - Tidak ada hubungan, kedua node tidak termasuk dalam dokumen yang sama.
  • 2 - Node yang ditentukan berada di depan node saat ini.
  • 4 - Node yang ditentukan mengikuti node saat ini.
  • 8 - Node yang ditentukan mengandung node saat ini.
  • 16 - Node yang ditentukan disertakan dalam node saat ini.
  • 32 - Node yang ditentukan dan node saat ini tidak memiliki kontainer node yang sama, atau kedua node adalah atribut yang berbeda dari node yang sama.

Perhatian:Nilai kembalian juga dapat berupa kombinasi nilai. Misalnya, nilai kembalian 20 menunjukkan bahwa node yang ditentukan disertakan dalam node saat ini (16) dan node yang ditentukan mengikuti node saat ini (4).

Contoh

Kode di bawah ini akan mengambil "books.xml" ke xmlDoc dan membandingkan posisi kedua node (elemen <book> pertama dan ketiga) dalam struktur DOM:

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);
}

Coba sendiri

Banyak pelayar akan menganggap spasi atau baris baru sebagai node teks, tetapi IE 9 dan versi sebelumnya tidak. Oleh itu, di contoh di atas, sebagian besar pelayar akan menampilkan 4, sementara IE 9 dan versi sebelumnya akan menampilkan 2.

浏览器支持

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
支持 支持 支持 支持 支持

所有主流浏览器都支持 compareDocumentPosition() 方法。

注释:Internet Explorer 9 及更早版本不支持此方法。