Range.setStartBefore() - встановлює початкове положення Range з вказаного Node.
Range.setStartBefore( startNode);
Range - об'єкт Range.
startNode - Node з якого Range повинен починатися.
setStartBefore() метод об'єкту Range який встановлює початкове положення діапазону Range з вказаного Node. Тобто виділення починається з самого початку Node.
var ran= document.createRange();
var node= document.getElementsByTagName('h2')[0];
var node2= document.getElementsByTagName('p')[0];
//з node початку
ran.setStartBefore( node );
// до node2 початку
ran.setEndBefore(node2 );
getSelection().addRange(ran);