Метод compareDocumentPosition() XML DOM

Определение и использование

compareDocumentPosition() Сравнение положения двух узлов в иерархической структуре DOM (документе).

Синтаксис

nodeObject.compareDocumentPosition(node)

Параметры

Параметры Описание
node Обязателен. Объект Node. Определяет узел, с которым сравнивается текущий узел.

Технические детали

Версия DOM: Core Level 3 Node Object
Возврат:

Числа, представляющие относительное положение узлов. Возможные значения возврата:

  • 1 - Нет关系的, два узла не принадлежат к одному документу.
  • 2 - Указанный узел расположен перед текущим узлом.
  • 4 - Указанный узел следует за текущим узлом.
  • 8 - Указанный узел содержит текущий узел.
  • 16 - Указанный узел содержится в текущем узле.
  • 32 - Указанный узел и текущий узел не имеют общего контейнера узла, или два узла являются различными свойствами одного и того же узла.

Примечание:Возврат также может быть комбинированной ценностью. Например, значение возврата 20 означает, что указанный узел содержится в текущем узле (16) и указанный узел следует за текущим узлом (4).

Пример

Следующий код загружает "books.xml" в xmlDoc и сравнивает положение двух узлов (первого и третьего элементов <book>) в иерархии 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);
}

Попробуйте это самому

Большинство браузеров считают пробелы или новые строки в качестве узлов текста, IE 9 и более ранние версии не делают этого. Поэтому, в приведенном выше примере, большинство браузеров выведут 4, а IE 9 и более ранние версии выведут 2.

Поддержка браузеров

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
Поддержка Поддержка Поддержка Поддержка Поддержка

Все основные браузеры поддерживают метод compareDocumentPosition().

Комментарий:Интернет-Explorer 9 и более ранние версии не поддерживают этот метод.