JSFiddle - React, Tailwind, and code Playground

HTML

<input id="inp" value="Hello world!"/>
<br />
<br />
<textarea id="txtarea">Hello world!</textarea>
<br />
<p id="para"> This is a paragraph</p>
<span id="spa"> This is a span</span>
<label id="lbl"> This is a label</label>

JavaScript

if (!window.textSelector) {
        textSelector = {};
    }

    textSelector.Selector = {};
    textSelector.Selector.getSelected = function() { 
        if (window.getSelection) {
            return window.getSelection();
        } else if (document.getSelection) {
            return document.getSelection();
        } else if (document.selection) {
            return document.selection.createRange().text;
        }
        return '';
    }

    function getSelectedText() {
        var str = textSelector.Selector.getSelected();
        alert(str)
        getSelectectedTextLength(str);
    }

    function getSelectectedTextLength(str) {
        alert((str+'').length)
    }

function getSelectedTextInput(inputId) {
    var strPos = getCurrentCaretPositionIndex(inputId);
    var str = '';
    var inputVal = $('#'+inputId).val();
    for ( var i = 0; i < inputVal.length; i++ ) {
        if ( i >= strPos['begin'] && i <= strPos['end'] ) {
            str += inputVal.substr( i, 1 );
        }
    }
    alert(str)
    getSelectectedTextLength(str);
}

function getCurrentCaretPositionIndex(inputId) {
    var rangeArray = [],
    inputBox = document.getElementById(inputId),
    br = ((inputBox.selectionStart || inputBox.selectionStart == '0') ? "ff" : (document.selection ? "ie" : false ) );
    if (br == "ie") {                               
        inputBox.focus();
        var range = document.selection.createRange();
        rangeArray['begin'] = 0 - range.duplicate().moveStart('character', -100000);
       rangeArray['end'] = rangeArray['begin'] + range.text.length;
     } else if (br == "ff") {                              
       rangeArray['begin'] = inputBox.selectionStart;
       rangeArray['end'] =  inputBox.selectionEnd;
     }
     return...