Link Search Menu Expand Document

Элементы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">
*/

Список унаследованных методов

Обходимое

Объект

ЧитаемаяКоллекция

ЧитаемыйМассив