Selection: addRange() method
        
        
          
                Baseline
                
                  Widely available
                
                
              
        
        
        
          
                
              
                
              
                
              
        
        
      
      This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The Selection.addRange() method adds a
Range to a Selection.
Syntax
js
addRange(range)
Parameters
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 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
Specifications
| Specification | 
|---|
| Selection API> # dom-selection-addrange>  | 
            
Browser compatibility
Loading…
See also
Selection, the interface this method belongs to