JavaScript Range.startContainer — вузол, де починається діапазон
Властивість startContainer повертає вузол, у якому починається діапазон.
Загальний опис
Найчастіше це текстовий вузол, а не елемент — бо виділення зазвичай починається посеред тексту. Тому звертатись до його classList чи tagName не можна, доведеться спершу піднятись до parentElement.
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| 1 | 1 | 1 | 9 | 12 | 9 |
| Переглядач | ||||
|---|---|---|---|---|
| 4.4 | 18 | 4 | 1 |
Приклади
+ запропонувати свій приклад у пісочниці
Знайти елемент, у якому почалося виділення.
HTML
<p id="editor">Текст із виділенням</p>
JS
// у демо виділення створюємо самі; вручну виділи текст і спробуй ще раз
const initialRange = document.createRange();
initialRange.selectNodeContents(document.getElementById('editor').firstChild);
window.getSelection().removeAllRanges();
window.getSelection().addRange(initialRange);
const range = window.getSelection().getRangeAt(0);
console.log(range.startContainer.nodeType); // 3 — текстовий вузол
console.log(range.startOffset); // номер символу
// щоб дістати ЕЛЕМЕНТ — піднімаємось
const element = range.startContainer.nodeType === 3
? range.startContainer.parentElement
: range.startContainer;
console.log(element.tagName); // 'P'
Коментарі
Коментарів ще немає — будьте першим!