ЭлементыHtml
Стд::ДокументHtml::ЭлементыHtml Базовые типы: Обходимое, Объект, ЧитаемаяКоллекция, ЧитаемыйМассив |
Доступность: Сервер |
Иерархия типа
graph TD;
ЧитаемыйМассив["ЧитаемыйМассив"]-->ЧитаемаяКоллекция["ЧитаемаяКоллекция"];
ЧитаемаяКоллекция["ЧитаемаяКоллекция"]-->Обходимое["Обходимое"];
Обходимое["Обходимое"]-->Объект["Объект"];
ЭлементыHtml["ЭлементыHtml"]-->ЧитаемыйМассив["ЧитаемыйМассив"];
Коллекция элементов Html.
Сравнение ссылочное
Конструкторы
ЭлементыHtml
ЭлементыHtml(Элементы: Обходимое<ЭлементHtml>)
Доступность: Сервер |
Создать объект элементов на основании массив элементов.
Методы
ДобавитьКласс
ДобавитьКласс(ИмяКласса: Строка)
Доступность: Сервер |
Добавить всем элементам указанный класс. Если атрибута класса нет на каком-то элементе, то он создается, если класс уже есть на, то для данного элемента метод не оказывает эффекта.
Примеры
/*
Для кода:
<html>
<div id="first">
<div id="second">
<p>Some text</p>
</div>
</div>
</html>
*/
пер Контейнеры = Документ.ПолучитьИзПоддереваЭлементыПоТегу("div")
Контейнеры.ДобавитьКласс("expandable")
/*
Результат:
<html>
<div id="first" class="expandable">
<div id="second" class="expandable">
<p>Some text</p>
</div>
</div>
</html>
*/
;
ПолучитьВсехПредыдущихСоседей
ПолучитьВсехПредыдущихСоседей(): ЭлементыHtml
Доступность: Сервер |
Для каждого элемента получить предыдущих элементов соседей.
Примеры
// Для таблицы приходов и трат денежных средств в третьей колонке содержится сумма.
// Если число отрицательное, нужно задать всем ячейкам этой строчки жирный шрифт, а саму третью ячейку покрасить
// в красный цвет
пер Таблицы = Документ.ПолучитьДочерниеПоТегу("table")
пер ПерваяСтрокаИлиЗаголовок = Таблицы.ПолучитьПервыеДочерине()
// Идет по элементам, если это заголовок, то кладет в результат следующего соседа, если строка, то кладет элемент в
// результат без изменений
пер ПерваяСтрока = ПолучитьПервыеСтроки(Таблицы.ПолучитьПервыеДочерине())
пер ТретьиЯчейки = ПерваяСтрока.ПолучитьПервыеДочерние()
.ПолучитьСледующихПрямыхСоседей()
.ПолучитьСледующихПрямыхСоседей()
пер Тексты = ТретьиЯчейки.ПолучитьДочерниеТекстовыеУзлы()
для И = 0 по Тексты.Размер()
если Тексты[И].Текст.НачинаетсяС("-")
ПроставитьЖирныйШрифтЭлементам(ТретьиЯчейки.ВсеПредыдущиеСоседи())
ПроставитьЖирныйШрифтЭлементам(ТретьиЯчейки.ВсеСледующиеСоседи())
УстановитьКрасныйФон(ТретьиЯчейки[И])
;
;
ПолучитьВсехСледующихСоседей
ПолучитьВсехСледующихСоседей(): ЭлементыHtml
Доступность: Сервер |
Для каждого элемента получить следующие элементы соседи.
Примеры
// Покрасить заголовок таблицы в Цвет1, а строчкам таких таблицы установить класс Класс1, все ячейки покрасить в Цвет2
пер Заголовки = Документ.ПолучитьИзПоддереваЭлементыПоТегу("th")
Заголовки.УстановитьАтрибут("style", "\"background-color:Цвет1;\"")
пер Строки = Заголовки.ПолучитьРодителей().ПолучитьВсехСледующихСоседей()
Строки.УстановитьАтрибут("class", Класс1)
Строки.ПолучитьДочерние().УстановитьАтрибут("style", "\"background-color:Цвет2;\"")
ПолучитьДочерние
ПолучитьДочерние(): ЭлементыHtml
Доступность: Сервер |
Для каждого элемента получает дочерние элементы и возвращает новую коллекцию элементов.
Примеры
пер Таблицы = Тело.ПолучитьИзПоддереваЭлементыПоТегу("table")
пер СтрокиТаблиц = Таблицы.ПолучитьДочерние()
для С из СтрокиТаблиц
если не С.Атрибуты.ЕстьЗначение("style")
С.Атрибуты.Вставить("style", "background-color:#00FF00")
;
;
ПолучитьДочерниеТекстовыеУзлы
ПолучитьДочерниеТекстовыеУзлы(Поддерево: Булево = Ложь): ЧитаемыйМассив<ТекстовыйУзелHtml>
Доступность: Сервер |
Получить дочерние узлы, являющиеся текстом.
Примеры
метод ВНижнийРегистр(Документ: ДокументHtml)
пер Параграфы = Документ.ПолучитьИзПоддереваЭлементыПоТегу("p")
для УзелТекста из Параграфы.ПолучитьДочерниеТекстовыеУзлы()
УзелТекста.Текст = ВНижнийРегистр(УзелТекста.Текст)
;
;
ПолучитьПервыеДочерние
ПолучитьПервыеДочерние(): ЭлементыHtml
Доступность: Сервер |
Для каждого элемента коллекции получает первые дочерние элементы и возвращает новую коллекцию элементов.
Примеры
// Раскрасить строки всех таблиц документа через одну (зеброй).
пер Таблицы = Тело.ПолучитьИзПоддереваЭлементыПоТегу("table")
пер ТекущиеСтроки = Таблицы.ПолучитьПервыеДочерние() // Первые строки всех таблиц
пер Инд = 0
пока ТекущиеСтроки.Размер() > 0
если Инд % 2 == 1
ТекущиеСтроки.УстановитьАтрибут("style", "background-color:#1397e4")
;
ТекущиеСтроки = ТекущиеСтроки.ПолучитьСледующихПрямыхСоседей()
Инд += 1
;
ПолучитьПоследниеДочерние
ПолучитьПоследниеДочерние(): ЭлементыHtml
Доступность: Сервер |
Для каждого элемента коллекции получает последние дочерние элементы и возвращает новую коллекцию элементов.
ПолучитьПредыдущихПрямыхСоседей
ПолучитьПредыдущихПрямыхСоседей(): ЭлементыHtml
Доступность: Сервер |
Для каждого элемента получить непосредственного предыдущего соседа (если имеется).
Примеры
/* Пример части кода:
<label for="1">Russian</label>
<input type="radio" id="1" name="fav_language" value="Russian">
*/
// Для пользовательского ввода данных радио кнопок задать class = Radio, а их лейблам class = Label
пер РадиоКнопки = Документ.ПолучитьИзПоддереваЭлементыПоАтрибуту("input", "type", "radio")
РадиоКнопки.ДобавитьКласс("Radio")
РадиоКнопки.ПолучитьПредыдущихПрямыхСоседей()
.УстановитьАтрибут("class", "Label")
/* Пример части результата:
<label for="1" class="Label">Russian</label>
<input type="radio" id="1" name="fav_language" value="Russian" class="Radio">
*/
ПолучитьРодителей
ПолучитьРодителей(): ЭлементыHtml
Доступность: Сервер |
Для каждого элемента получает родительский элемент и возвращает новую коллекцию элементов с результатом. Элементы в результирующей коллекции уникальны (без повторений).
Примеры
// Покрасить заголовок таблицы в Цвет1, а строчкам таких таблицы установить класс Класс1, все ячейки покрасить в Цвет2
пер Заголовки = Документ.ПолучитьИзПоддереваЭлементыПоТегу("th")
Заголовки.УстановитьАтрибут("style", "\"background-color:Цвет1;\"")
пер Строки = Заголовки.ПолучитьРодителей().ПолучитьВсехСледующихСоседей()
Строки.УстановитьАтрибут("class", Класс1)
Строки.ПолучитьДочерние().УстановитьАтрибут("style", "\"background-color:Цвет2;\"")
ПолучитьСледующихПрямыхСоседей
ПолучитьСледующихПрямыхСоседей(): ЭлементыHtml
Доступность: Сервер |
Для каждого элемента получить непосредственного следующего соседа.
Примеры
// Раскрасить строки всех таблиц документа через одну (зеброй).
пер Таблицы = Тело.ПолучитьИзПоддереваЭлементыПоТегу("table")
пер ТекущиеСтроки = Таблицы.ПолучитьПервыеДочерние() // Первые строки всех таблиц
пер Инд = 0
пока ТекущиеСтроки.Размер() > 0
если Инд % 2 == 1
ТекущиеСтроки.УстановитьАтрибут("style", "background-color:#1397e4")
;
ТекущиеСтроки = ТекущиеСтроки.ПолучитьСледующихПрямыхСоседей()
Инд += 1
;
УдалитьАтрибут
УдалитьАтрибут(Имя: Строка)
Доступность: Сервер |
Удалить все атрибуты у элементов по имени.
Примеры
пер Изображения = Документ.ПолучитьИзПоддереваЭлементыПоТегу("img")
Изображения.УдалитьАтрибут("src")
;
УдалитьИзДерева
УдалитьИзДерева(ВместеСДочерними: Булево = Истина)
Доступность: Сервер |
Удаляет элементы из документа, перемещая их детей к своим родителям. Если ВместеСДочерними == Истина, то удалится все поддерево.
Примеры
// Удалить весь javascript код
метод УдалитьВесьJs(Документ: ДокументHtml)
пер Скрипты = Документ.ПолучитьИзПоддереваЭлементыПоАтрибуту("script", "type", "text/javascript")
Скрипты.УдалитьИзДерева(Истина)
;
УдалитьИзДереваДочерние
УдалитьИзДереваДочерние()
Доступность: Сервер |
Удалить дочерние узлы у каждого элемента из дерева.
Примеры
// Удалить весь javascript код и добавить вместо узлов текст о том, что он не поддерживается
метод УдалитьВесьJs(Документ: ДокументHtml)
пер Скрипты = Документ.ПолучитьИзПоддереваЭлементыПоАтрибуту("script", "type", "text/javascript")
Скрипты.УдалитьИзДереваДочерние()
пер Комментарий = новый УзелКомментарийHtml("js не поддерживается")
для Скрипт из Скрипты
Скрипт.ДобавитьКопииВНачалоДочерних(Комментарий)
;
;
УдалитьКласс
УдалитьКласс(ИмяКласса: Строка)
Доступность: Сервер |
Удалить у всех элементов указанный класс.
Примеры
/*
Для кода:
<html>
<div id="first" class="expandable">
<div id="second" class="expandable">
<p>Some text</p>
</div>
</div>
</html>
*/
пер Контейнеры = Документ.ПолучитьИзПоддереваЭлементыПоТегу("div")
Контейнеры.УдалитьКласс("expandable")
/*
Результат:
<html>
<div id="first">
<div id="second">
<p>Some text</p>
</div>
</div>
</html>
*/
;
УстановитьАтрибут
Доступность: Сервер |
Установить всем элементам коллекции атрибут.
Примеры
/* Пример части кода:
<label for="1">Russian</label>
<input type="radio" id="1" name="fav_language" value="Russian">
*/
// Для пользовательского ввода данных радио кнопок задать class = Radio, а их лейблам class = Label
пер РадиоКнопки = Документ.ПолучитьИзПоддереваЭлементыПоАтрибуту("input", "type", "radio")
РадиоКнопки.ДобавитьКласс("Radio")
РадиоКнопки.ПолучитьПредыдущихПрямыхСоседей()
.УстановитьАтрибут("class", "Label")
/* Пример части результата:
<label for="1" class="Label">Russian</label>
<input type="radio" id="1" name="fav_language" value="Russian" class="Radio">
*/