Получение координат слова в TextNode

276
28 сентября 2017, 12:20

Имеется TextNode:

<div>aaa bbb ccc</div>

(точнее элемент, содержащий ровно одну TextNode)

Я могу получить координаты всего текста вот так:

let element = document.querySelector('div'); 
let node = element.childNodes[0]; 
let range = document.createRange(); 
range.selectNodeContents(node); 
let rect = range.getBoundingClientRect(); 
console.log(rect);
<div>aaa bbb ccc</div>

Как я могу получить координаты только слова bbb (я знаю индексы его начала и конца в соответствующей TextNode)? Под координатами имеются в виду четыре числа left, top, height и width.

Answer 1

Надо использовать методы Range.setStart и Range.setEnd:

let element = document.querySelector('div'); 
let node = element.childNodes[0]; 
let range = document.createRange(); 
range.setStart(node, 4); 
range.setEnd(node, 7); 
let rect = range.getBoundingClientRect(); 
console.log(rect);
<div>aaa bbb ccc</div>

А кто-то не смог правильно найти координаты слова bbb, поэтому и задал этот вопрос :(

READ ALSO
Как задать функцию через поле формы

Как задать функцию через поле формы

У меня на страничке есть форма, в нее пользователь вводит функцию по определенному шаблону

311
скрыть элемент шапки

скрыть элемент шапки

есть в шапке такие элементы:

311
Передача текста через input radio с javascript [требует правки]

Передача текста через input radio с javascript [требует правки]

При выборе пункта Нет, в форме автоматически добавляется текст "Нет", как это правильно реализовать на JS, заранее спасибо!

260
Интерактивная помощь в WPF приложении

Интерактивная помощь в WPF приложении

Пытаюсь сделать что то подобное на WPFНа архитектуре MVVM

233