Spec-Zone.ru › Web APIs

Узел: метод compareDocumentPosition()

Базовая линия Широко доступна

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзывы

Метод compareDocumentPosition() интерфейса Node сообщает о позиции узла-аргумента относительно узла, на котором он вызван.

Синтаксис

compareDocumentPosition(otherNode)

Параметры

otherNode

Узел Node, позиция которого должна быть указана относительно узла.

Возвращаемое значение

Целое числовое значение, представляющее позицию 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("Well-formed document");
} else {
  console.error("<head> is not before <body>");
}

Примечание: Поскольку результат, возвращаемый compareDocumentPosition(), является побитовой маской, для получения осмысленных результатов необходимо использовать оператор побитового И.

Спецификации

Спецификация
DOM
# ref-for-dom-node-comparedocumentposition①

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
compareDocumentPosition 2 12 1 ≤12.1 4 18 4 ≤12.1 3.2 1.0 ≤37

См. также

  • Node.contains()

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API