Phương thức compareDocumentPosition() của XML DOM

Định nghĩa và cách sử dụng

compareDocumentPosition() So sánh vị trí của hai nút trong cấu trúc cấp bậc DOM (tài liệu).

Cú pháp

nodeObject.compareDocumentPosition(node)

Tham số

Tham số Mô tả
node Bắt buộc. Đối tượng Node. Quy định nút cần so sánh với nút hiện tại.

Chi tiết kỹ thuật

Phiên bản DOM: Core Level 3 Node Object
Giá trị trả về:

Số, biểu thị vị trí tương đối của hai nút. Các giá trị có thể trả về bao gồm:

  • 1 - Không có mối quan hệ, hai nút không thuộc về cùng một tài liệu.
  • 2 - Nút được chỉ định nằm trước nút hiện tại.
  • 4 - Nút được chỉ định theo sau nút hiện tại.
  • 8 - Nút được chỉ định chứa nút hiện tại.
  • 16 - Nút được chỉ định được chứa trong nút hiện tại.
  • 32 - Nút được chỉ định và nút hiện tại không có cùng container hoặc hai nút là các thuộc tính khác nhau của cùng một nút.

Lưu ý:Giá trị trả về cũng có thể là tổ hợp của các giá trị. Ví dụ, giá trị trả về 20 có nghĩa là nút được chỉ định được chứa trong nút hiện tại (16) và nút được chỉ định theo sau nút hiện tại (4).

Ví dụ

Mã dưới đây sẽ tải "books.xml" vào xmlDoc và so sánh vị trí của hai nút (thứ nhất và thứ ba <book>元素) trong cấu trúc 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);
}

Thử làm một mình.

Hầu hết các trình duyệt sẽ coi khoảng trống hoặc dòng mới là phần tử văn bản, IE 9 và các phiên bản trước không. Do đó, trong ví dụ trên, hầu hết các trình duyệt sẽ xuất ra 4, trong khi IE 9 và các phiên bản trước sẽ xuất ra 2.

Hỗ trợ trình duyệt

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
Hỗ trợ Hỗ trợ Hỗ trợ Hỗ trợ Hỗ trợ

Tất cả các trình duyệt phổ biến đều hỗ trợ phương pháp compareDocumentPosition().

Ghi chú:Trình duyệt Internet Explorer 9 và các phiên bản trước không hỗ trợ phương pháp này.