Web/API/Selection/addRange

From Get docs

This is an experimental technologyCheck the Browser compatibility table carefully before using this in production.


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

Syntax

selection.addRange(range);

Parameters

range
A Range object that will be added to the Selection.

Example

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


HTML

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

JavaScript

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

button.addEventListener('click', function () {
  let selection = window.getSelection();
  let strongs = document.getElementsByTagName('strong');

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

  for (let i = 0; i < strongs.length; i++) {
    let range = document.createRange();
    range.selectNode(strongs[i]);
    selection.addRange(range);
  }
});

Result

Specifications

Specification Status Comment
Selection APIThe definition of 'Selection.addRange()' in that specification. Working Draft Current

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet

addRange

Experimental'

Chrome

Full support 1

Edge

Full support 12

Firefox

Full support Yes

IE

?

Opera

Full support Yes

Safari

Full support Yes

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support Yes

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

Legend

Full support  
Full support
Compatibility unknown  
Compatibility unknown
Experimental. Expect behavior to change in the future.'
Experimental. Expect behavior to change in the future.


See also

  • Selection, the interface this method belongs to