Выбор состоит из нескольких объектов Range, обычно 1. Каждый объект Range состоит из StartContainer и StartOffset, а также EndContainer и EndOffset. Если соответствующий контейнер является текстовым узлом, тогда смещение является символьным смещением, но иногда контейнер является элементом, и в этом случае смещение является индексом дочернего узла. Так, например, учитывая HTML
<p>The <strong>strong</strong> tag usually results in <b>bold</b> text.</p>
Если начальным контейнером является текст «strong», а начальным смещением является 3, в то время как конечным контейнером является текст «жирным шрифтом», а конечным смещением является 2, то выбранный текст будет « ong ». тег обычно приводит к bo".
После внесения поправок для особых случаев (например, начальный и конечный контейнеры являются одним и тем же текстовым узлом), вы можете использовать такие методы, как TreeWalker, для посещения узлов в диапазоне.