Текст: метод splitText()
Базовая поддержка Широко доступна
Эта функция хорошо отработана и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Метод splitText() интерфейса Text разбивает узел Text на два узла на указанном смещении, сохраняя оба узла в дереве как соседние.
После разделения текущий узел содержит всё содержимое до указанной точки смещения, а новый созданный узел того же типа содержит оставшийся текст. Созданный узел возвращается вызывающей стороне. Если у исходного узла есть родитель, новый узел вставляется как следующий сосед исходного узла. Если смещение равно длине исходного узла, созданный узел не содержит данных.
Разделенные текстовые узлы могут быть объединены с помощью метода Node.normalize().
Синтаксис
newNode = textNode.splitText(offset)
Параметры
offset-
Индекс, непосредственно перед которым должен быть разбит текстовый узел.
Возвращаемое значение
Возвращает новый созданный узел Text, содержащий текст после указанной точки смещения.
Исключения
-
IndexSizeErrorDOMException -
Выбрасывается, если указанное смещение отрицательное или больше, чем количество 16-битных единиц в тексте узла.
-
NoModificationAllowedErrorDOMException -
Выбрасывается, если узел является только для чтения.
Пример
В этом примере текст <p> разбивается на два текстовых узла, и между ними вставляется <u>.
<p>foobar</p>
const p = document.querySelector("p");
// Get contents of <p> as a text node
const foobar = p.firstChild;
// Split 'foobar' into two text nodes, 'foo' and 'bar',
// and save 'bar' as a const
const bar = foobar.splitText(3);
// Create a <u> element containing ' new content '
const u = document.createElement("u");
u.appendChild(document.createTextNode(" new content "));
// Add <u> before 'bar'
p.insertBefore(u, bar);
// The result is: <p>foo<u> new content </u>bar</p>
Спецификации
| Спецификация |
|---|
| DOM # ref-for-dom-text-splittext① |
Совместимость браузеров
| Рабочие столы | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari в IOS | Samsung Internet | WebView Android | |
splitText |
1До Chrome 30, параметрoffset был необязательным. |
12 | 1 | ≤12.1До Opera 17, параметрoffset был необязательным. |
1Параметрoffset был необязательным. |
18До Chrome Android 30, параметрoffset был необязательным. |
4 | ≤12.1До Opera 17, параметрoffset был необязательным. |
1Параметрoffset был необязательным. |
1.0До Samsung Internet 2.0, параметрoffset был необязательным. |
1До версии 4.4, параметрoffset был необязательным. |
См. также
- Интерфейс
Text, к которому он относится. - Противный метод:
Node.normalize.
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Text/splitText