Метод createRange - создает объект фрагмента документа. Этот фрагмент может содержать фрагменты элементов и участки текста.

См. также getSelection.

Синтаксис

document.createRange();

Суть метода рассмотрим на примерах:

Примеры

Пример

Получим содержимое абзаца:

<p id="p">
	<b>JavaScript</b> — это сила!
</p>
var p = document.getElementById('p');

var rng = document.createRange();
rng.selectNode(p);
alert(rng.toString()) //'JavaScript — это сила'

Пример

Но таким способом можно получить не только содержимое элемента, а вообще любую часть документа. Даже если она начинается в одном элементе, а заканчивается в другом:

JavaScript — это сила!

HTML/CSS — тоже хорошо.

var root = document.getElementById('root');
var start = root.children[0].firstChild;
var end = root.children[1].firstChild;

var rng = document.createRange();
rng.setStart(start, 13);
rng.setEnd(end, 8);
alert(rng.toString());

Результат выполнения кода:

JavaScript — это сила!

HTML/CSS — тоже хорошо.

start/end - получаем начало фрагмента, и его конец (с помощью firstChild получаем именно текстовые узлы, а не элементы).

setStart/setEnd - устанавливаем начало и конец фрагмента. Вторым параметром указываем смещение (начать с 13, закончить 8 символом).

rng.toString() - превращаем фрагмент документа в текст.