#javascript #range
#javascript #диапазон
Вопрос:
Когда я иду:
range.selectNodeContents(element);
Насколько я понимаю, объект range выбирает все содержимое элемента. Так что это означало бы, что если бы я сказал:
range.startOffset();
Я должен получить 0. Что верно при тестировании.
Но тогда, если я скажу:
range.endOffset();
Я бы подумал, что я получаю длину содержимого элемента. Но я этого не делаю. Я получаю 1, или 3 … или числа, которые я не понимаю.
Итак … что на самом деле вам говорит range.endOffset()?
Ответ №1:
Свойство Range.endOffset, доступное только для чтения, возвращает число, представляющее, где в Range.endContainer заканчивается диапазон.
Из: https://developer.mozilla.org/en-US/docs/Web/API/Range/endOffset
Ответ №2:
Когда вы используете selectNodeContents
,
- Пусть длина — это длина узла.
- Установите end в граничную точку (узел, длина).
Таким образом, конечное смещение устанавливается на длину узла:
Чтобы определить длину узла node, включите node:
DocumentType
Ноль.Текст, обработкаинструкции, комментарий
Количество единиц кода в его данных.У любого другого узла
свое количество дочерних элементов.
Это то, что вы получите, если позвоните endOffset
.