Node: метод compareDocumentPosition()
Метод compareDocumentPosition()
интерфейса Node
сообщает позицию переданного ему в качестве аргумента узла относительно узла, на котором он был вызван.
Синтаксис
compareDocumentPosition(otherNode)
Параметры
Возвращаемое значение
Числовое значение, представляющее позицию otherNode
относительно node
в виде битовой маски, в которой объединены следующие константы Node
:
Node.DOCUMENT_POSITION_DISCONNECTED
(1
)-
Оба узла находятся в разных документах или в разных деревьях одного документа.
Node.DOCUMENT_POSITION_PRECEDING
(2
)-
otherNode
предшествует узлу во время прямого обхода при поиске в глубину. Node.DOCUMENT_POSITION_FOLLOWING
(4
)-
otherNode
следует после узла во время прямого обхода при поиске в глубину. Node.DOCUMENT_POSITION_CONTAINS
(8
)-
otherNode
является предком узла. Node.DOCUMENT_POSITION_CONTAINED_BY
(16
)-
otherNode
является потомком узла. Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC
(32
)-
Результат зависит от произвольного и/или специфичного для реализации поведения, и его переносимость не гарантируется.
Могут быть установлены ноль или более битов. Например, если otherNode
находится в документе ранее и содержит узел, на котором был вызван метод compareDocumentPosition()
, то будут установлены биты DOCUMENT_POSITION_CONTAINS
и DOCUMENT_POSITION_PRECEDING
, и полученное значение будет равно 10
(0x0A
).
Пример
const head = document.head;
const body = document.body;
if (head.compareDocumentPosition(body) & Node.DOCUMENT_POSITION_FOLLOWING) {
console.log("Правильно составленный документ");
} else {
console.error("<head> не найден перед <body>");
}
Примечание:
Поскольку результат, возвращаемый compareDocumentPosition()
, является битовой маской, побитовый оператор И должен использоваться для осмысленных значений.
Спецификации
Specification |
---|
DOM Standard # ref-for-dom-node-comparedocumentposition① |
Совместимость с браузерами
BCD tables only load in the browser