Selection.containsNode()

Experimental

This is an experimental technology
Check 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
Selection API
# dom-selection-containsnode

Browser compatibility

BCD tables only load in the browser

See also