Перейти к основному содержимому

ЭлементыHtml

Стд::ДокументHtml::ЭлементыHtml Доступность: Сервер

Коллекция элементов Html.

Сравнение ссылочное

Иерархия типа

Базовые типы: Обходимое<ItemType>, Объект, ЧитаемаяКоллекция<ItemType>, ЧитаемыйМассив<Стд::Документ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">
*/

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

Обходимое

ВМассив, ВСоответствие, ВСоответствиеСКлючами, ВСоответствиеСоЗначениями, ВоМножество, ВсеСоответствуют, ГруппироватьПо, ДляКаждого, ЕдинственныйИлиНеопределено, ЕдинственныйИлиУмолчание, ЕдинственныйИлиУмолчание, ЕстьСоответствия, КакПоследовательность, Максимум, МаксимумПо, Минимум, МинимумПо, НетСоответствий, Объединить, Первый, ПервыйИлиНеопределено, ПервыйИлиУмолчание, ПервыйИлиУмолчание, ПотомСортироватьПо, Преобразовать, ПреобразоватьЛинейно, Пусто, Свернуть, Свернуть, Соединить, Сортировать, Сортировать, СортироватьПо, Среднее, СреднееИлиУмолчание, Сумма, Уникальные, УникальныеПо, Фильтровать, ФильтроватьПоТипу

Объект

ПолучитьТип, Представление

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

Единственный, Размер, Содержит, СодержитВсе

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

ВСтроку, Граница, Найти, НайтиСКонца, ПодМассив, Получить, Последний, СодержитВсе