files/en-us/web/api/selection/containsnode/index.md
{{ ApiRef("DOM") }}
The Selection.containsNode() method indicates whether a
specified node is part of the selection.
containsNode(node)
containsNode(node)
containsNode(node, partialContainment)
node
partialContainment {{optional_inline}}
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.Returns true if the given node is part of the selection, and false otherwise.
This snippet checks whether anything inside the body element is selected.
console.log(window.getSelection().containsNode(document.body, true));
In this example, a message appears when you select the secret word. It uses {{domxref("EventTarget/addEventListener", "addEventListener()")}} to check for {{domxref("Document/selectionchange_event", "selectionchange")}} events.
<p>Can you find the secret word?</p>
<p>Hmm, where <span id="secret">SECRET</span> could it be?</p>
<p id="win" hidden>You found it!</p>
#secret {
color: transparent;
}
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);
});
{{EmbedLiveSample("Find_the_hidden_word")}}
{{Specifications}}
{{Compat}}