The Range.commonAncestorContainer read-only property returns the deepest — or furthest down the document tree — Node that contains both boundary points of the range. This means that if Range.startContainer and Range.endContainer both refer to the same node, this node is the commonAncestorContainer.
Since a Range need not be continuous, and may also partially select nodes, this is a convenient way to find a Node which encloses a Range.
This property is read-only. To change the ancestor container of a Node, consider using the various methods to set the start and end positions of the Range.
Syntax
rangeAncestor = range.commonAncestorContainer;
Example
var range = document.createRange(); range.setStart(startNode,startOffset); range.setEnd(endNode,endOffset); rangeAncestor = range.commonAncestorContainer;
Specifications
| Specification | Status | Comment |
|---|---|---|
| DOM The definition of 'Range.commonAncestorContainer' in that specification. |
Living Standard | No change. |
| Document Object Model (DOM) Level 2 Traversal and Range Specification The definition of 'Range.commonAncestorContainer' in that specification. |
Recommendation | Initial specification. |
Browser compatibility
| Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|---|
| Basic support | (Yes) | (Yes) | 1.0 (1.7 or earlier) | 9.0 | 9.0 | (Yes) |
| Feature | Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Basic support | (Yes) | (Yes) | 1.0 (1.0) | 9.0 | 9.0 | (Yes) |