W3cubDocs

/Web APIs

Selection: addRange() method

The Selection.addRange() method adds a Range to a Selection.

Syntax

js

addRange(range)

Parameters

range

A Range object that will be added to the Selection.

Return value

None (undefined).

Examples

Note: Currently only Firefox supports multiple selection ranges, other browsers will not add new ranges to the selection if it already contains one.

HTML

html

<p>
  I <strong>insist</strong> that you <strong>try</strong> selecting the
  <strong>strong words</strong>.
</p>
<button>Select strong words</button>

JavaScript

js

let button = document.querySelector("button");

button.addEventListener("click", () => {
  const selection = window.getSelection();
  const strongs = document.getElementsByTagName("strong");

  if (selection.rangeCount > 0) {
    selection.removeAllRanges();
  }

  for (const node of strongs) {
    const range = document.createRange();
    range.selectNode(node);
    selection.addRange(range);
  }
});

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
addRange 1 12 1 9 ≤12.1 3 4.4 18 4 ≤12.1 1 1.0

See also

  • Selection, the interface this method belongs to

© 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/addRange