Как только вы овладеете текстовыми узлами, содержащими текст, который вы хотите выделить, это легко.Как вы их получите, зависит от того, насколько вам это нужно.Как и на данный момент, до того, как пользователь отредактировал его, будет работать следующее:
var mainDiv = document.getElementById("main");
var startNode = mainDiv.firstChild.firstChild;
var endNode = mainDiv.childNodes[2].firstChild;
var range = document.createRange();
range.setStart(startNode, 6); // 6 is the offset of "world" within "Hello world"
range.setEnd(endNode, 7); // 7 is the length of "this is"
var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);