Метод compareDocumentPosition() XML DOM
Определение и использование
compareDocumentPosition()
Сравнение положения двух узлов в иерархической структуре DOM (документе).
Синтаксис
nodeObject.compareDocumentPosition(node)
Параметры
Параметры | Описание |
---|---|
node | Обязателен. Объект Node. Определяет узел, с которым сравнивается текущий узел. |
Технические детали
Версия DOM: | Core Level 3 Node Object |
---|---|
Возврат: |
Числа, представляющие относительное положение узлов. Возможные значения возврата:
Примечание:Возврат также может быть комбинированной ценностью. Например, значение возврата 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 и более ранние версии не поддерживают этот метод.