Back to Content

Selection: addRange() method

files/en-us/web/api/selection/addrange/index.md

latest1.3 KB
Original Source

{{ ApiRef("DOM") }}

The Selection.addRange() method adds a {{domxref("Range")}} to a {{domxref("Selection")}}.

Syntax

js-nolint
addRange(range)

Parameters

  • range
    • : A {{ domxref("Range") }} object that will be added to the {{domxref("Selection")}}.

Return value

None ({{jsxref("undefined")}}).

Examples

Note that only Firefox supports multiple selection ranges. In this example, 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 strongElems = document.getElementsByTagName("strong");

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

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

Result

{{EmbedLiveSample("Examples")}}

Specifications

{{Specifications}}

Browser compatibility

{{Compat}}

See also

  • {{domxref("Selection")}}, the interface this method belongs to