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);
});
});