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
startContainer
the
starts. 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)Выбирает
Range
to содержащий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 перед, внутри, или после
.Range.createContextualFragment()
(en-US) Экспериментальная возможностьВозвращает
DocumentFragment
созданный из полученной строки с кодом.Range.getBoundingClientRect()
Экспериментальная возможностьВозвращает объект
ClientRect
object which bounds the entire contents of theRange
range. getClientRects()
(en-US).Range.getClientRects()
(en-US) Экспериментальная возможностьReturns a list of
ClientRect
objects that aggregates the results ofElement.getClientRects()
(en-US) for all the elements in theRange
.Range.intersectsNode()
Возвращает
boolean
указывающий, пересекает ли данный узелRange
.Range.isPointInRange()
(en-US) Экспериментальная возможностьReturns a
boolean
indicating 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. createRange()
. Объекты Range также можно получить с помощью метода 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()
возвращает неглубокую копию части массива в новый объект массива, выбранный изbegin
toконец
(конец
не включен), гденачало
иконец
представляют индекс элементов в этом массиве. Исходный массив не будет изменен». — 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()
не изменяет исходный массив.