Telement.select
Функция, доступная для вызова.
Источник: webvi_telement.js
Синтаксис: Array_value = Telement_object.select( query [, param1 [,param2...]] )
Возвращает для Telement_object массив дочерних элементов; в ячейках возвращаемого массива содержатся элементы, удовлетворяющие условиям запроса query.
| Параметр | Тип | Описание |
|---|---|---|
| Telement_object | Telement | Произвольный элемент. |
| quary | String | Запрос на выборку элементов. |
| param# | expression | Произвольное выражение, значение которого может быть подставлено в запрос query. |
| Array_value | Array of Telement | Результат функции. |
Эта функция является своеобразным аналогом SQL-запроса, выполняемого для иерархии Telement и включена в объектную модель в качестве примера её расширения внутри класса. В настоящее время структура запроса максимально упрощена: возможно использовать только часть запроса WHERE, причём разрешено только одно условие и только один подстановочный параметр _PARAM1.
Условие может иметь вид (ограничения текущей реализации):
dom.style.PROPERTY=VALUE
FUNCTION=VALUE
PROPERTY произвольное свойство DOM или каскадного стиля элемента. Обработка свойств dom.style реализуется внутри функции f_select() (это место можно найти по комментарию //LABEL01). Не все свойства каскадных таблиц включены в тело обработчика и Вы можете включить их самостоятельно. Обработка свойств dom реализуется внутри функции f_select() (это место можно найти по комментарию //LABEL02) за счёт автоматического считывания значения свойств методом getAttribute. При считывании реальных значений Вы должны учитывать особенности объектной модели браузера: некоторые значения отсутствуют ввиду наследования значений, другие значения могут переопределяться браузером. В любом случае, рассчитывать, что значение свойства каскадной таблицы выглядит также, как оно определено в таблице стиля, нельзя. Если свойство таблицы стилей определено в виде внутреннего свойства Telement, то предпочтительнее использовать его (в настоящее время определено только два свойства dom_сolor и dom_background_сolor).
VALUE произвольное, явно заданное, константное значение; оно не может быть выражением. Если в запросе есть необходимость использовать значение, вычисляемое во время выполнения программы, то вместо VALUE можно использовать механизм подстановки: на месте VALUE пишется зарезервированное значение _PARAM#, а фактическое значение передаётся как параметр функции select. Номер параметра задаётся по такому правилу: номер это фактический номер фактического параметра, передаваемого в функцию select, при условии, что первый параметр (сам запрос) имеет номер 0. При использовании подстановки Вы также должны учесть, что подстановочное выражение будет вычислено только один раз при вызове функции select, а не для каждого проверяемого элемента в отдельности.
FUNCTION - вызов некоторой функции Telement (или некоторое свойство Telement). В настоящее время поддерживается только вызов функций dom_color, dom_background_сolor и parent. Вызов должен удовлетворять правилам вызова этих функций для чтения значения.
Результирующий массив похож на массив функции plain(), то есть элементы представлены в нём в порядке последовательного обхода иерархии дочерних объектов Telement_object.
Пример
Если имеется иерархия вида:
то, при условии, что element ссылается на "earth"
| Код | В результате | Примечание |
|---|---|---|
| element.select('dom.id="england"') | [ england ] | Результат массив, содержащий одну ячейку. |
| element.select('dom.id=england') | [ england ] | Строковые константы не обязательно оборачивать кавычками. |
| element.select('dom.id=england')[0] | england | Эквивалентно element.find('england') |
| element.select('dom.id=_PARAM1','england') | [ england ] | Механизм подстановки заменяет _PARAM1 значением первого параметра 'england'. |
| element.select('dom.style.color=blue') | undefined | В большинстве браузеров массив будет пустым, так как браузеры переопределяют цвета, заданные в стилях в свой внутренний формат. |
| element.select('dom_color()=#0000FF') | [ europe, france ] | В результирующий массив попали все значения, истинный цвет которых #0000FF. |
| element.select('dom_color=#0000FF') | [ europe, france ] | Вызов функции чтения свойства можно проводить как обращение к свойству и в этом случае пустые скобки не нужны. |
| element.select('dom_color=_PARAM1', convert_color('blue')) | [ europe, france ] | Функция convert_color обеспечивает приведение цвета к универсальному формату #0000FF. |
| element.select('dom_color=convert_color("blue")') | undefined | Нельзя использовать выражения в параметре VALUE. |
| element.select('dom_color=_PARAM1', element.find('earth').dom_color() ) | [ europe, france ] | Сложность подстановочного выражения может быть любой. В данном случае, в результат будут помещены элементы с dom_color равным значению этого свойства у earth. |
Вы видите этот текст, потому что Ваш браузер не поддерживает таблицы стилей (CSS)