JSFiddle - React, Tailwind, and code Playground
HTML
<div onclick="setSelection()">Выделить</div>
<br/>
<div id="apotxt">
<span>
Это текст, который нужно выделить
</span>
</div>
<br/>
<div onmouseover="get_selection()" onclick="alert(aposelectedtext)">Получить выделенный текст</div>
JavaScript
function setSelection() {
var target = document.getElementById('apotxt').getElementsByTagName('span')[0];
var rng, sel;
if (document.createRange) {
rng = document.createRange();
rng.selectNode(target)
sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(rng);
} else {
var rng = document.body.createTextRange();
rng.moveToElementText(target);
rng.select();
}
get_selection();
}
function get_selection() {
if (window.getSelection) {
selection = window.getSelection().toString();
selection = selection.replace(/\r\n\r\n/gi, "_doublecaret_");
selection = selection.replace(/\r\n/gi, " ");
selection = selection.replace(/_doublecaret_/gi, "\r\n\r\n");
} else {
selection = document.selection.createRange().text;
}
aposelectedtext = selection;
}