JSFiddle - React, Tailwind, and code Playground
HTML
<p>Lorem ipsum dolor sit amet, <strong>consectetur</strong> adipisicing elit. Error ipsa quo illum excepturi autem voluptatem, maiores tempora quasi temporibus architecto ratione delectus modi qui cum earum, omnis itaque nam iure!</p>
<input type="button" id="addText" value="Surround">
JavaScript
var manipulator = function (coreObject) {
console.log(coreObject);
}
function highlight() {
var range, sel;
var span = document.createElement("span");
span.style.fontWeight = "bold";
span.style.color = "green";
// IE case
if (document.selection && document.selection.createRange) {
range = document.selection.createRange();
manipulator(range)
} else if (window.getSelection) {
// Non-IE
sel = window.getSelection();
manipulator(sel)
}
}
$("#addText").on('click', function(event) {
event.preventDefault();
highlight();
});