Возможно, кому-то поможет, ОБЯЗАТЕЛЬНО делать через selectNodeContents вместо selectNode
$("#root").on("click", (e) => {
console.log(e.target.tagName)
if (e.target.tagName === "DIV") {
let rng = document.createRange()
let sel = window.getSelection()
rng.selectNodeContents($(e.target)[0])
sel.removeAllRanges()
sel.addRange(rng)
}
})
P. S.: у меня разметка добавляется по мере поступления ответов от сервера, так что тут захватывается контейнер root, на него накидывается обработчик onclick, затем проверяется, что был нажат именно блок div и только после этого всё, что в нём есть, выделяется