Свойства
Last updated
Last updated
Кроме атрибутов также есть свойства элементов, к ним относятся selectedIndex
, tagName
, nodeName
, nodeType
, ownerDocument
, defaultChecked
и defaultSelected
. Ну, вроде бы, список невелик, можно и запомнить. Для работы со свойствами используем методы из семейства prop()
:
А теперь выключите музыку, и запомните следующее – для отключения элементов формы и для проверки/изменения состояния чекбоксов мы всегда используем метод prop()
, пусть вас не смущает наличие одноименных атрибутов в HTML (это я про «disabled
» и «checked
»), используем prop()
и точка.
Давайте на примере:
Посмотрите, как работает система без нашего вмешательства — кликните чекбокс, селектбокс, попробуйте отправить форму.
Теперь приступим к серии экспериментов (не забудьте обновить страничку):
Ставим галочку на чекбоксе посредством метода attr()
:
Теперь снимите галочку мышкой — значение attr()
осталось без изменений, значение prop()
изменилось
Попробуйте ещё раз поставить галочку, используя метод attr()
Небольшое пояснение сути происходящего. При первом вызове метода attr("checked", "checked")
проставляется галочка, т.к. изменяются и атрибут и свойство checked
. При повторном вызове уже ничего не происходит, меняется только значение атрибута, которое и так ужеchecked
.
Следующий эксперимент:
Поставьте мышкой галочку на чекбоксе
Снимите галочку — значение attr()
не изменяется
Попробуйте установить значение посредством вызова:
В данном эксперименте интересен следующий момент: вызов метода attr("checked", "checked") не срабатывает после того, как пользователь изменял статус чекбокса
Ну и ещё один эксперимент со вторым чекбоксом:
Удаляем галочку:
Ставим галочку:
Опять удаляем галочку, используя метод attr()
Повторяем до упаду
Работает — не трожь, мышкой всё сломаете :)
Сравните с поведением метода prop()
:
Удаляем галочку:
Ставим галочку:
Можем кликать мышкой по чекбоксу и повторять предыдущие пункты в произвольном порядке, всё будет работать как часы
Надеюсь, я достаточно наглядно дал понять, когда надо использовать
attr()
, а когдаprop()
Это ещё не всё, у нас же есть ещё свойство disabled
! Но не волнуйтесь, его поведение более предсказуемо, т.к. пользователь не может вмешиваться в его состояние:
Включаем радио-кнопку:
Выключаем:
Повторяем
Аналогичное поведение при использовании метода prop()
:
Включаем:
Выключаем:
Повторяем
Ну, как бы, можно использовать
attr()
, но нет!
получение значения свойства
установка значения свойства
установка нескольких значений
используя функцию обратного вызова
index
это порядковый номер элемента в выборке
value
— текущее значение атрибута
удаление свойства (скорей всего, никогда не понадобится)