JSFiddle - React, Tailwind, and code Playground

HTML

<div id="text">aaa as <b>asd</b> das d</div>

JavaScript

$('#text').bind('mouseup', function() {
    if (window.getSelection) {
        // not IE case
        var selObj = window.getSelection();
        var selRange = selObj.getRangeAt(0);
        
        var newElement = document.createElement("b");
        var documentFragment = selRange.extractContents();
        newElement.appendChild(documentFragment);
        selRange.insertNode(newElement);
        
        selObj.removeAllRanges();
    } else if (document.selection && document.selection.createRange && document.selection.type != "None") {
        // IE case
        var range = document.selection.createRange();
        var selectedText = range.htmlText;
        var newText = '<b>' + selectedText + '</b>';
        document.selection.createRange().pasteHTML(newText);
    }
});