Range — Интерфейсы веб API
Range(диапазон) интерфейс предоставляет фрагмент документа который может содержать узлы и части текстовых узлов данного документа.
Range может быть создан с помощью метода createRange, у объекта Document. Или объект Range можно получить с помощью метода getRangeAt, у объекта Selection. А также с помощью конструктора Range() (en-US).
Нет унаследованных свойств.
Range.collapsed Только для чтения Возвращает Boolean (en-US) указывающий, находятся ли начало и конец диапазона
на одной и той же позиции.
Range.startContainer(en-US) Только для чтенияВозвращает
Nodeвнутри которогоRangeначинается.Range.endContainer(en-US) Только для чтения ВозвращаетNodeвнутри которогоRangeзаканчивается .
Range.commonAncestorContainer(en-US) Только для чтенияВозвращает самый глубокий
Nodeкоторый содержит узлыstartContainerиendContainer.Range.endOffset(en-US) Только для чтенияВозвращает число равное расположению
endContainerвRange.Range.startOffset(en-US) Только для чтенияReturns a number representing where in the
startContainerthestarts. Range
Range()(en-US) Экспериментальная возможностьВозвращают объект
Rangeс глобальнымDocumentкак начало и конец.
Не имеют унаследованных свойств.
Range.setStart()(en-US)Назначают начальную позицию
Range.Range.setEnd()(en-US)Назначает конечную позицию
Range .Range.setStartBefore()(en-US)Устанавливает начальную позицию
Rangeотносительно другогоNodeпред ним.Range.setStartAfter()(en-US)Устанавливает начальную позицию
Rangeотносительно другогоNodeпосле него.Range.setEndBefore()(en-US)Устанавливает конечную позицию
Rangeотносительно другогоNodeперед ним.Range.setEndAfter()(en-US) Устанавливает конечную позициюRangeотносительно другогоNodeпосле него.
Range.selectNode()(en-US)Выбирает
Rangeto содержащийNodeи его контент.Range.selectNodeContents()(en-US)Выбирает
Rangeсодержащий контентNode.Range.collapse()(en-US)Схлопывает
Rangeдо одной из граничных точек.Range.cloneContents()(en-US)Возвращает
DocumentFragmentсодержащийся в узлеRange.Range.deleteContents()(en-US)Удаляет содержимое
RangeизDocument.Переносит содержимое
Rangeиз дерева документа вDocumentFragment.Range.insertNode()(en-US)Вставляет a
Nodeв началоRange.
Range.surroundContents()Переносит содержимое
Rangeв новыйNode.Range.compareBoundaryPoints()(en-US)Сравнивает граничные точки
Rangeс другимRange.Range.cloneRange()(en-US)Возвращает объект из
Rangeс граничными точками идентичными клонированномуRange.Range.detach()(en-US)Освобождает Rangeот использования для улучшения производительности .Range.toString()(en-US)Возвращает текст в
. RangeRange.compareNode()(en-US) Non-standardВозвращает константу, представляющую, находится ли
Nodeдо, после, внутри или вокруг range.
Range.comparePoint()(en-US) Экспериментальная возможностьВозвращает -1, 0, или 1 в зависимости от того, находиться ли referenceNode перед, внутри, или после
. RangeRange.createContextualFragment()(en-US) Экспериментальная возможностьВозвращает
DocumentFragmentсозданный из полученной строки с кодом.Range.getBoundingClientRect()Экспериментальная возможностьВозвращает объект
ClientRectobject which bounds the entire contents of theRange ; this would be the union of all the rectangles returned byrange.(en-US).
getClientRects()Range.getClientRects()(en-US) Экспериментальная возможностьReturns a list of
ClientRectobjects that aggregates the results ofElement.getClientRects()(en-US) for all the elements in theRange.Range.intersectsNode() (en-US) Экспериментальная возможностьВозвращает
booleanуказывающий, пересекает ли данный узелRange.Range.isPointInRange()(en-US) Экспериментальная возможностьReturns a
booleanindicating whether the given point is in theRange.
| Specification | Status | Comment |
|---|---|---|
| DOM Определение ‘Range’ в этой спецификации. | Живой стандарт | Do not use RangeException anymore, use DOMException instead. Made the second parameter of collapse() optional. Added the methods isPointInRange(), comparePoint(), and intersectsNode(). Added the constructor Range(). |
| DOM Parsing and Serialization Определение ‘Extensions to Range’ в этой спецификации. | Рабочий черновик | Added the method createContextualFragment() |
| CSS Object Model (CSSOM) View Module Определение ‘Extensions to Range’ в этой спецификации. | Рабочий черновик | Added the methods getClientRects() and getBoundingClientRect().![]() |
| Document Object Model (DOM) Level 2 Traversal and Range Specification Определение ‘Range’ в этой спецификации. | Устаревшая | Initial specification. |
BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
- The DOM interfaces index
Found a content problem with this page?
- Edit the page on GitHub.
- Report the content issue.
- View the source on GitHub.
Want to get more involved?
Learn how to contribute.
This page was last modified on by MDN contributors.
Диапазон— веб-API | MDN
Интерфейс Диапазон представляет собой фрагмент документа, который может содержать узлы и части текстовых узлов.
Диапазон можно создать с помощью метода Document.. Объекты Range также можно получить с помощью метода
createRange() getRangeAt() объекта Selection или метода caretRangeFromPoint() объекта Document .
Также есть Доступен конструктор Range() .
Нет унаследованных свойств.
-
Range.collapsedТолько чтение Возвращает логическое значение, указывающее, находятся ли начальная и конечная точки диапазона в одном и том же месте.
-
Range.commonAncestorContainerТолько чтение Возвращает самый глубокий узел
, который содержитstartContainerиendContainerузлов.-
Range.endContainerТолько чтение Возвращает узел
, в котором заканчивается диапазон.
-
Range.endOffsetТолько чтение Возвращает число, представляющее, где в
endContainerзаканчивается диапазон.-
Range.startContainerТолько чтение Возвращает узел
, в котором начинается диапазон.-
Range.startOffsetТолько чтение Возвращает число, представляющее, где в
startContainerначинается диапазон.
-
Диапазон() Возвращает объект
Rangeс глобальнымDocumentв качестве начала и конца.
Унаследованных методов нет.
-
Range.collapse() Сворачивает диапазон
до одной из его граничных точек.-
Диапазон.compareBoundaryPoints() Сравнивает граничные точки диапазона
с другим диапазоном.
-
Range.compareNode()Устаревший Нестандартный Возвращает константу, указывающую, находится ли узел
до, после, внутри или вокруг диапазона.-
Диапазон.comparePoint() Возвращает -1, 0 или 1, указывающее, находится ли точка до, внутри или после диапазона
.-
Range.cloneContents() Возвращает
DocumentFragment, копирующий узлы диапазона.-
Диапазон.cloneRange() Возвращает объект
Rangeс граничными точками, идентичными клонированномуRange.-
Range.createContextualFragment() Возвращает
DocumentFragment, созданный из заданной строки кода.
-
Диапазон.deleteContents() Удаляет содержимое диапазона
из документа.-
Диапазон.detach() Ничего не делает. Сохранено для совместимости.
Перемещает содержимое диапазона
из дерева документов вDocumentFragment.-
Range.getBoundingClientRect() Возвращает объект
DOMRect, ограничивающий все содержимое диапазона; это будет объединение всех прямоугольников, возвращаемыхдиапазон.getClientRects().-
Диапазон.getClientRects() Возвращает список из
объектов DOMRect, который объединяет результатыElement.getClientRects()для всех элементов в диапазоне.-
Диапазон.
isPointInRange() Возвращает логическое значение
, указывающее, находится ли данная точка в диапазоне.-
Диапазон.insertNode() Вставить узел
в начало диапазона.-
Диапазон.intersectsNode() Возвращает логическое значение
, указывающее, пересекает ли данный узел диапазон.-
Диапазон.selectNode() Устанавливает диапазон
для содержания узлаи его содержимого.-
Range.selectNodeContents() Устанавливает диапазон
для содержания содержимого узла.-
Диапазон.setEnd() Устанавливает конечное положение диапазона
.-
Диапазон.
setStart() Устанавливает начальную позицию диапазона
.-
Диапазон.setEndAfter() Устанавливает конечное положение диапазона
относительно другого узла.-
Диапазон.setEndBefore() Устанавливает конечное положение диапазона
относительно другого узла.-
Диапазон.setStartAfter() Устанавливает начальную позицию диапазона
относительно другого узла.-
Диапазон.setStartBefore() Устанавливает начальную позицию диапазона
относительно другого узла.-
Range.surroundContents() Перемещает содержимое диапазона
в новый узел.
-
Диапазон.toString() Возвращает текст диапазона
.
| Спецификация |
|---|
| DOM Standard # interface-range |
| DOM Parsing and Serialization # extensions-to-the-range-interface |
| CSSOM View Module # extensions-to-the-range -interface |
Таблицы BCD загружаются только в браузере с включенным JavaScript. Включите JavaScript для просмотра данных.
- Индекс интерфейсов DOM
Обнаружили проблему с содержанием этой страницы?
- Отредактируйте страницу на GitHub.
- Сообщить о проблеме с содержимым.
- Посмотреть исходный код на GitHub.
Хотите принять более активное участие?
Узнайте, как внести свой вклад.
Последний раз эта страница была изменена участниками MDN.
Как выбрать диапазон из массива в JavaScript | by Dr. Derek Austin 🥳
Нужно получить ряд элементов в массиве? Вот как использовать
Array.prototype.slice() , что похоже на String.prototype.substring() для массивов. Фото Kaizen Nguyễn на Unsplash Если вы читали мою статью о подстроках JavaScript, то знаете, что я предпочитаю синтаксис Ruby JS из-за оператора диапазона Ruby .. :
Как выбрать диапазон из строки (a Substring) в JavaScript
Здесь нет удобного ярлыка. Чтобы получить подстроку, используйте встроенный метод String.prototype.substring(startIndex…
medium.com
Возможно, неудивительно, что я хотел бы использовать синтаксис диапазона Ruby для выбора диапазона внутри массива — это так удобно!
В Ruby ["🏄","🏊","🌴","🍹","🌞"][2. равно
.3] ["🌴","🍹"] .
В JavaScript нам нужно использовать Array.prototype.slice() . Вот как.
«Метод
slice()возвращает неглубокую копию части массива в новый объект массива, выбранный изbegintoконец(конецне включен), гденачалоиконецпредставляют индекс элементов в этом массиве. Исходный массив не будет изменен». — MDN Docs
В JavaScript ["🏄", "🏊", "🌴", "🍹", "🌞"].slice(2,4) создаст нашу пляжную пару смайликов, [" 🌴","🍹"] .
Обратите внимание, что конечный элемент индекса не включен, поэтому вам нужно добавить его в индекс по сравнению с тем, как работает метод диапазона Ruby.
Если вы не включаете конечный индекс, вы получаете оставшуюся часть массива, поэтому ["🏄","🏊","🌴","🍹","🌞"].slice(2) приводит к ["🌴","🍹","🌞"] .
Вы также можете использовать отрицательные индексы, которые отсчитываются от конца массива в обратном порядке: ["🏄","🏊","🌴","🍹","🌞"].slice(-2) возвращает ["🍹","🌞"] .
Любой индекс, указанный в slice() , может быть положительным, нулевым или отрицательным:
["🏄","🏊","🌴","🍹","🌞"].slice(-4,3 ) дает ["🏊","🌴"] .
Аналогично, ["🏄","🏊","🌴","🍹","🌞"].slice(2,-1) это ["🌴","🍹"] .
Вот забавный факт — slice() фактически можно использовать таким же образом для строк, и в этом случае он работает точно так же, как substring() .
(Одно отличие состоит в том, что slice() принимает отрицательные индексы; substring() — нет.)
Еще одно распространенное использование slice() — поверхностное копирование массивов, которое я сравниваю с методами глубокого копирования массивов. в следующей статье:
Как глубоко копировать объекты и массивы в JavaScript
Обычные методы копирования объекта или массива делают лишь поверхностную копию, поэтому глубоко вложенные ссылки представляют собой проблему… Метод
, slice() не изменяет исходный массив.





getClientRects()




isPointInRange()
setStart() 