W3cubDocs

/Web APIs

Selection: containsNode() method

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

Syntax

js

containsNode(node)
containsNode(node)
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.

Return value

Returns true if the given node is part of the selection, and false otherwise.

Examples

Check for selection

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

js

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

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

js

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

Browser compatibility

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet
containsNode 1 12
1Before Firefox 35, the method didn't throw if node was null.
No ≤12.1 3.1 4.4 18
4Before Firefox 35, the method didn't throw if node was null.
≤12.1 2 1.0
partialContainment_parameter_optional 1 ≤79 55 No ≤15 3.1 ≤37 18 55 ≤14 2 1.0

See also

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