$ select.val ("someValue")
Это нормально, в общем случае, когда это не-1005 * выбор, а у вас нет двух разных <option>
s с тем же value
.Если бы это было так, я бы выбрал это как наиболее читаемый вариант.
$ select [0] .selectedIndex = 1
Это более прямо, так незначительнобыстрее, и это необходимо, чтобы быть однозначным для случая, когда у вас есть несколько вариантов с одним и тем же значением.
Если у вас может быть выбор multiple
, вы должны получить / установить выбранность каждого параметра отдельно:
$select[0].options[1].selected= true;
Однако:
$ option.attr ("выбранный", "выбранный")
Как правило, не лучший подход.Проблема с attr()
в том, что получить доступ к свойствам DOM и атрибутам HTML, как если бы они были одним и тем же, пытаться скрыть от вас разницу - это неприятный хак.В этом случае attr()
будет устанавливать свойство selected
DOM , которое является логическим значением.Так что attr('selected', true)
будет иметь больше смысла;'selected'
как строковое значение также работает, но только потому, что все непустые строковые значения в JavaScript являются «правдивыми».
Если бы вы на самом деле устанавливали здесь атрибут HTML selected
, он бы не имелвлияет на выбранность параметра, поскольку атрибут selected
фактически соответствует свойству defaultSelected
, а не selected
!Свойство selected
отражает содержимое формы времени выполнения, измененное пользователем;defaultSelected
отражает фактический атрибут в документе, содержащем начальное состояние выбранности.
(За исключением IE, из-за ошибки в его реализации значений по умолчанию, а также в других браузерах в некоторых ситуациях, которые являются слишком сложнымии вводит в заблуждение. Совет на дому: не пытайтесь установить атрибут selected
HTML из скрипта, так как результаты могут быть непредсказуемыми. Работа со свойствами DOM. То же самое верно и для value
/ defaultValue
для входов и checked
/ defaultChecked
для флажков / радио.)