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