JSFiddle - React, Tailwind, and code Playground
HTML
<script src="http://rangy.googlecode.com/svn/trunk/currentrelease/rangy-core.js"></script>
<div>
some text
<span> child <b> some bold</b> </span> some more text
</div>
JavaScript
function contains(outer, inner) {
var current = inner;
do {
if (current == outer) {
return true;
}
} while((current = current.parentNode) != document.body);
return false;
}
rangy.init();
$(document).bind("mouseup", function() {
var a = rangy.getSelection();
start_node = a.anchorNode;
end_node = a.focusNode;
var b = a.getRangeAt(0);
var c = b.commonAncestorContainer;
b.selectNodeContents(c);
a.setSingleRange(b);
alert( contains( end_node.parentNode, start_node) );
});