Web/API/Selection/containsNode

From Get docs

This is an experimental technologyCheck the Browser compatibility table carefully before using this in production.


The Selection.containsNode() method indicates whether a specfied node is part of the selection.

Syntax

sel.containsNode(node, partialContainment)

Parameters

node
The node that is being looked for in the selection.
partialContainment Optional
When true, containsNode() returns true when a part of the node is part of the selection. When false, containsNode() only returns true when the entire node is part of the selection. If not specified, the default value false is used.

Example

Check for selection

This snippet checks whether anything inside the body element is selected.

console.log(window.getSelection().containsNode(document.body, true));

Find the hidden word

In this example, a message appears when you select the secret word. It uses addEventListener() to check for selectionchange events.

HTML

<p>Can you find the secret word?</p>
<p>Hmm, where <span id="secret" style="color:transparent">SECRET</span> could it be?</p>
<p id="win" hidden>You found it!</p>

JavaScript

const secret = document.getElementById('secret');
const win = document.getElementById('win');

// Listen for selection changes
document.addEventListener('selectionchange', () => {
  const selection = window.getSelection();
  const found = selection.containsNode(secret);

  win.toggleAttribute('hidden', !found);
});

Result

Specifications

Specification Status Comment
Selection APIThe definition of 'Selection.containsNode()' in that specification. Working Draft Current

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet

containsNode

Experimental'

Chrome

Full support Yes

Edge

Full support 12

Firefox Full support 4

Notes'

Full support 4

Notes'

Notes' Before Firefox 35, the method didn't throw if node was null.

IE

No support No

Opera

Full support Yes

Safari

Full support Yes

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android Full support 4

Notes'

Full support 4

Notes'

Notes' Before Firefox 35, the method didn't throw if node was null.

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

partialContainment parameter is optional

Experimental'

Chrome

Full support Yes

Edge

Full support ≤79

Firefox

Full support 55

IE

No support No

Opera

Full support Yes

Safari

Full support Yes

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support 55

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

Legend

Full support  
Full support
No support  
No support
Experimental. Expect behavior to change in the future.'
Experimental. Expect behavior to change in the future.
See implementation notes.'
See implementation notes.


See also