Интерфейс Text

Интерфейс Text описывает текстовые узлы документа HTML. Этот интерфейс не имеет собственных свойств, кроме свойств, унаследованных от интерфейса Node, а также наследует все методы интерфейса Node. Кроме этого, для интерфейса Text определен метод

splitText(смещение),

разбивающий текстовое содержимое узла на два узла по заданному смещению относительно начала строки (индекс начала строки равен 0). Метод возвращает объект типа Text, представляющий новый узел, являющийся следующим дочерним узлом для родителя исходного узла.

Пример 4.5.11. Использование метода splitText() интерфейса Text:

Перенос выделения подчеркиванием со слов "встраиваемые элементы" на слово "блоковые" для документа HTML в примере 4.5.1 (с учетом изменений, произведенных в примерах 4.5.5, 4.5.7, 4.5.8, 4.5.9 и 4.5.10):

// Получение элемента для первого абзаца

var firstPar = document.getElementById("p1");

// Добавление к содержимому первого абзаца

// слов "встраиваемые элементы"

firstPar.childNodes[0].nodeValue +=

"встраиваемые элементы";

// Удаление элемента u в первом абзаце

firstPar.removeChild(

document.getElementsByTagName("u")[0]);

// Объединение текстового содержимого первого абзаца

firstPar.normalize();

// Определение текстового содержимого

// первого абзаца

parContent = firstPar.firstChild.nodeValue;

// Поиск слова "блоковые" в текстовом

// содержимом первого абзаца

wordIndex = parContent.indexOf("блоковые");

// Разделение текстового содержимого по началу слова

// "блоковые" и помещение первой половины содержимого

// в первый дочерний элемент первого абзаца

firstPar.childNodes[0].splitText(wordIndex);

// Занесение остатка текстового содержимого

// (за исключением слова "блоковые") во

// второй дочерний элемент первого абзаца

firstPar.childNodes[1].nodeValue =

" " + firstPar.childNodes[1].nodeValue.substring(9);

// Добавление пробела в конец текстового содержимого

// первого дочернего элемента первого абзаца

firstPar.childNodes[0].nodeValue += " ";

// Создание нового элемента подчеркивания (u)

var newUnderline = document.createElement("u");

// Создание текстового содержимого для элемента u

var newParContent = document.createTextNode("блоковые");

// Добавление текстового содержимого в элемент u

newUnderline.appendChild(newParContent);

// Вставка элемента u перед вторым дочерним

// текстового содержимого первого абзаца

firstPar.insertBefore(newUnderline, firstPar.childNodes[1]);

В результате Web-страница примет следующий вид:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: