JavaScript Range.setStart() — початок діапазону


Метод setStart() ставить початок діапазону: у якому вузлі й на якому зсуві.

автор: NagarD

Загальний опис

Зсув означає різне залежно від вузла — і саме тут плутаються. У текстовому вузлі це номер символу: setStart(text, 3) почне діапазон після третьої літери. У елементі це номер дочірнього вузла.

Звідси й уся сила Range: він мислить не теґами, а точками — тому й уміє описати виділення, що починається посеред слова.

автор: NagarD

Нотатка

Якщо початок опиниться після кінця, браузер мовчки схлопне діапазон — помилки не буде, просто вийде порожньо.

автор: NagarD

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
setStart 1+ 1+ 1+ 7+ 12+ 9+
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
setStart yes yes yes yes

Приклади

+ запропонувати свій приклад у пісочниці

Діапазон, що починається посеред слова.

HTML

<p id="text">Привіт, світе!</p>

JS

const node = document.getElementById('text').firstChild;
const range = document.createRange();

// у текстовому вузлі зсув — номер символу
range.setStart(node, 8);
range.setEnd(node, 13);

console.log(range.toString()); // 'світе'
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід