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