The Node.compareDocumentPosition() method compares the position of the current node against another node in any other document.
The return value is a bitmask with the following values:
| Name | Value |
|---|---|
DOCUMENT_POSITION_DISCONNECTED | 1 |
DOCUMENT_POSITION_PRECEDING | 2 |
DOCUMENT_POSITION_FOLLOWING | 4 |
DOCUMENT_POSITION_CONTAINS | 8 |
DOCUMENT_POSITION_CONTAINED_BY | 16 |
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC | 32 |
node.compareDocumentPosition( otherNode )
var head = document.getElementsByTagName('head').item(0);
if (head.compareDocumentPosition(document.body) & Node.DOCUMENT_POSITION_FOLLOWING) {
console.log("well-formed document");
} else {
console.log("<head> is not before <body>");
}
Note: Because the result returned bycompareDocumentPosition is a bitmask, the bitwise and operator has to be used for meaningful results.
Note: First statement uses NodeList method item(0), which is equivalent to getElementsByTagName('head')[0].
| Specification | Status | Comment |
|---|---|---|
| DOM The definition of 'Node.compareDocumentPosition()' in that specification. | Living Standard | |
| Document Object Model (DOM) Level 3 Core Specification The definition of 'Node.compareDocumentPosition()' in that specification. | Obsolete | Initial definition |
| Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|---|
| Basic support | (Yes) | (Yes) | (Yes) | 9.0 | (Yes) | (Yes) |
| Feature | Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Basic support | (Yes) | (Yes) | (Yes) | ? | (Yes) | (Yes) |
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition