Самый большой интерес представляет свойство
<b>options[]</b>
элемента
<b>Select</b>
. Это объект, подобный массиву, содержащий элементы
<b><option></b>
(см.
<b>Option</b>
), которые описывают варианты выбора, представленные в элементе
<b>Select</b>
. По историческим причинам этот объект, подобный массиву, имеет необычные особенности, касающиеся выполнения операций добавления и удаления элементов
<b><option>.</b>
Дополнительные сведения приводятся в статье
<b>HTMLOptionsCollection</b>
.
Если в элементе
<b>Select</b>
отсутствует атрибут
<b>multiple</b>
, определить, какой вариант выбран, можно с помощью свойства
<b>selectedlndex</b>
. Однако если допускается возможность одновременного выбора нескольких вариантов, это свойство содержит индекс первого выбранного варианта. Чтобы определить все множество выбранных вариантов, необходимо обойти в цикле массив
<b>options[]</b>
и проверить свойство selected каждого объекта
<b>Option</b>
.
Свойства
В дополнение к свойствам, перечисленным ниже, элементы
<b>Select</b>
также поддерживают свойства интерфейса
<b>Element</b>
и
<b>FormControl</b>
и имеют свойства
<b>multiple, required и size</b>
, соответствующие HTML-атрибутам.
<b>unsigned long length</b>
Количество элементов в коллекции
<b>options</b>
. Объекты
<b>Select</b>
сами являются объектами, подобными массивам, поэтому для объекта s типа
<b>Select</b>
и числа п выражение
s[n]
возвращает то же значение, что и
<b>s.options[n].</b>
<b>readonly HTMLOptionsCollection options</b>
Объект, подобный массиву, с элементами Option, содержащимися в данном элементе
<b>Select</b>
. Описание исторически сложившегося поведения этой коллекции приводится в справочной статье
<b>HTMLOptionsCollection</b>
.
<b>long selectedlndex</b>
Индекс выбранного варианта в массиве
<b>options</b>
. Если ни один из вариантов не выбран, значение этого свойства равно -1. Если выбрано более одного варианта, свойство
<b>selectedlndex</b>
определяет индекс только первого из них.
Установка значения этого свойства приводит к выбору указанного варианта и отменяет выбор всех остальных, даже если в объекте
<b>Select</b>
указан атрибут
<b>multiple</b>
. Если выбор реализован в виде списка (когда значение свойства size > 1), то выбор всех вариантов можно отменить, установив свойство selectedlndex равным -1. Обратите внимание: этот способ изменения выбора не приводит к вызову обработчика события
<b>onchange().</b>
<b>readonly HTMLCollection selectedOptions</b>
Доступный только для чтения oбъект, подобный массиву, содержащий выбранные элементы
<b>Option</b>
. Это новое свойство, определяемое спецификацией HTML5, которое на момент написания этих строк было реализовано не во всех броузерах.
Методы
Все методы, перечисленные ниже, делегируют выполнение операций одноименным методам свойства
<b>options</b>
; дополнительные сведения приводятся в справочной статье
<b>HTMLOptionsCollection</b>
. В дополнение к этим методам элементы
<b>Select</b>
реализуют методы интерфейсов
<b>Element</b>
и
<b>FormControl</b>
.
<b>void add(Element element, [any before])</b>
Действует подобно методу
<b>options.add(),</b>
добавляя новый элемент
<b>Option</b>
.
<b>any item(unsigned long index)</b>
Действует подобно методу
<b>options.item()</b>
и возвращает элемент
<b>Option</b>
. Он также неявно вызывается, когда пользователь обращается к элементу
<b>Select</b>
как к массиву.
<b>any namedltem(string name)</b>
Действует подобно методу
<b>options.namedltem()</b>
. См. HTMLOptionsCollection.
<b>void remove(long index)</b>
Действует подобно методу
<b>options.remove(),</b>
удаляя элемент
<b>Option</b>
. См. HTMLOptionsCollection.
Storage
хранилище пар имя/значение на стороне клиента
Свойства
<b>localStorage</b>
и
<b>sessionStorage</b>
объекта
<b>Window</b>
являются объектами
<b>Storage</b>
, которые представляют хранимые на стороне клиента ассоциативные массивы, отображающие строковые ключи в значения. Теоретически объект
<b>Storage</b>
может хранить любые значения, которые можно копировать с применением алгоритма структурированного копирования (врезка «Структурированные копии» в главе 22). Однако на момент написания данных строк броузеры позволяли сохранять только строковые значения.
Методы объекта
<b>Storage</b>
позволяют добавлять новые пары ключ/значение, удалять их и получать значение, связанное с определенным ключом. Однако нет необходимости явно вызывать эти методы: вместо них можно использовать операцию индексирования и оператор
<b>delete</b>
и обрабатывать свойства
<b>localStorage</b>
и
<b>sessionStorage</b>
, как если бы они были обычными объектами.