JSFiddle - React, Tailwind, and code Playground
HTML
<div id = "outer">
foobarfoobarfoobar
<div id = "inner">
inner
</div>
</div>
<button id = "b">
push
</button>
JavaScript
inner.onclick = function(){alert("hello!")}
b.onclick = function(){
var range = getSelection().getRangeAt(0)
var text = range + ""
range.deleteContents()
range.insertNode(document.createTextNode(text.replace(/foo/g, "moo")))
}