JSFiddle - React, Tailwind, and code Playground

HTML

<div id="div1" contenteditable="true">This is a sample text</div>

JavaScript

$(function(){
  var selectedRange, selectedNode;
  $("#div1").on("keyup mouseup", function(e) {
    selectedRange = window.getSelection().getRangeAt(0);
    selectedNode = selectedRange.commonAncestorContainer;
    console.log("selected node: ", selectedNode);
    console.log("selected node value: ", selectedNode.nodeValue);
    console.log("selection chars range: START POS: ", selectedRange.startOffset);
    console.log("selection chars range: END POS: ", selectedRange.endOffset);
  });
});