JSFiddle - React, Tailwind, and code Playground
HTML
<script type='text/javascript' src='http://rangy.googlecode.com/svn/trunk/currentrelease/rangy-core.js'></script>
<div contenteditable="true">
"Hello "
<button id='btn' contenteditable="false" data-id="147">@John Smith</button>aaa <b>bbb</b> ccc
</div>
result:
<div id='result'>
</div>
JavaScript
$(document).ready(function() {
rangy.init();
setInterval(function() {
var r = rangy.getSelection().getRangeAt(0);
var prev = r.startContainer.previousSibling;
if(prev !== null) {
$("#result").html($(prev).html());
//delete it
//$(prev).remove();
}
},1000);
});