Если вы знаете индекс, значение или текст. также, если у вас нет идентификатора для прямой ссылки.
Это , это и это все полезные ответы.
Пример разметки
<div class="selDiv">
<select class="opts">
<option selected value="DEFAULT">Default</option>
<option value="SEL1">Selection 1</option>
<option value="SEL2">Selection 2</option>
</select>
</div>
$("#my_select").val("the_new_value").change();
... ... от такОтветы:
Селектор для получения среднего параметра-элемента по значению
Для индекса:
Для известного текста:
РЕДАКТИРОВАТЬ : Как отмечено выше, OP может быть после изменения выбранного элемента в раскрывающемся списке. В версии 1.6 и выше рекомендуется метод prop ():
В старых версиях:
EDIT2 : после комментария Райана. Совпадение по «выбору 10» может быть нежелательным. Я не нашел селектора, соответствующего полному тексту, но фильтр работает:
РЕДАКТИРОВАТЬ 3 : Будьте осторожны с, так
$(e).text()
как он может содержать новую строку, что делает сравнение неудачным. Это происходит, когда параметры неявно закрыты (без</option>
тега):Если вы просто используете
e.text
лишние пробелы, такие как завершающий символ новой строки, будут удалены, что сделает сравнение более надежным.источник
Ни один из вышеперечисленных методов не обеспечил мне нужного решения, поэтому я решил, что я предоставлю то, что сработало для меня.
источник
prop
а не использоватьattr
..attr
правильно. «selected» - это атрибут <option> w3.org/TR/html5/forms.html#attr-option-selectedprop
в предпочтенииattr
. Это избавляет от необходимости искать каждое свойство на w3.org, чтобы увидеть, является ли оно атрибутом или реализовано с помощью вспомогательных действий.Вы можете просто использовать
val()
метод:источник
the_value
. .val не является функцией селектора / фильтра! Это средство доступа к свойству, и передача ему этой строки Устанавливает значение. Я попытался забрать свой голос обратно, но было слишком поздно после того, как я понял это в тестировании.По значению, то, что работало для меня с jQuery 1.7, было кодом ниже, попробуйте это:
источник
.change()
было необходимо. У меня был пример, где я переключал миниатюры на основе SELECT. Когда я загружал пользовательскую тему, она должна была выбрать «Пользовательскую тему» из списка параметров..prop()
Вызов работал, но без.change()
, миниатюрное изображение на правом мой выбор никогда не обновляется.prop
значение генерирует тот же результат. напр..prop('selected', true)
Есть несколько способов сделать это, но самый чистый подход был потерян среди лучших ответов и множества аргументов по
val()
. Также некоторые методы изменились с jQuery 1.6, так что это требует обновления.В следующих примерах я предполагаю, что переменная
$select
является объектом jQuery, указывающим на нужный<select>
тег, например, с помощью следующего:Примечание 1 - используйте val () для совпадений значений:
Для сопоставления значений использовать
val()
намного проще, чем с помощью селектора атрибутов: https://jsfiddle.net/yz7tu49b/6/Сеттер-версия
.val()
реализована наselect
тегах путем установкиselected
свойства совпаденияoption
с тем жеvalue
, поэтому прекрасно работает во всех современных браузерах.Примечание 2 - используйте prop ('selected', true):
Если вы хотите установить выбранное состояние опции напрямую, вы можете использовать
prop
(неattr
) сboolean
параметром (а не текстовое значениеselected
):например, https://jsfiddle.net/yz7tu49b/
Примечание 3 - учитывайте неизвестные значения:
Если вы используете
val()
для выбора<option>
, но значение val не совпадает (может произойти в зависимости от источника значений), тогда «ничто» будет выбрано и$select.val()
вернетсяnull
.Итак, для показанного примера и ради надежности вы можете использовать что-то вроде этого https://jsfiddle.net/1250Ldqn/ :
Примечание 4 - точное совпадение текста:
Если вы хотите сопоставить по точному тексту, вы можете использовать функцию
filter
с. например, https://jsfiddle.net/yz7tu49b/2/ :хотя, если у вас могут быть дополнительные пробелы, вы можете добавить обрезку к чеку, как в
Примечание 5 - совпадение по индексу
Если вы хотите сопоставить по индексу, просто проиндексируйте дочерние элементы, например, https://jsfiddle.net/yz7tu49b/3/
Хотя в настоящее время я склоняюсь к тому, чтобы избегать прямых свойств DOM в пользу jQuery, к коду, ориентированному на будущее, так что это также можно сделать как https://jsfiddle.net/yz7tu49b/5/ :
Примечание 6 - используйте change (), чтобы запустить новый выбор
Во всех вышеуказанных случаях событие изменения не срабатывает. Это сделано так, чтобы вы не сталкивались с событиями рекурсивных изменений.
Чтобы создать событие изменения, если требуется, просто добавьте вызов
.change()
кselect
объекту jQuery . например, самый первый самый простой пример - https://jsfiddle.net/yz7tu49b/7/Есть также много других способов найти элементы с помощью селекторов атрибутов, например
[value="SEL2"]
, но вы должны помнить, что селекторы атрибутов относительно медленны по сравнению со всеми этими другими опциями.источник
Вы можете назвать выбор и использовать это:
Следует выбрать вариант, который вы хотите.
источник
источник
Отвечая на мой собственный вопрос для документации. Я уверен, что есть другие способы сделать это, но это работает, и этот код проверен.
источник
Именно это будет работать, попробуйте следующие методы
источник
Используя jquery-2.1.4 , я нашел следующий ответ для меня:
Если у вас есть строковое значение, попробуйте следующее:
Другие примеры не помогли мне, поэтому я добавляю этот ответ.
Я нашел оригинальный ответ по адресу: https://forum.jquery.com/topic/how-to-dynamically-select-option-in-dropdown-menu
источник
Для настройки выберите значение с выбранным триггером:
Для настройки опции из области:
Этот код использует селектор, чтобы выяснить объект выбора с условием, а затем изменить выбранный атрибут с помощью
attr()
.Кроме того, я рекомендую добавить
change()
событие после установки атрибутаselected
, при этом код будет близок к изменению выбора пользователем.источник
Я использую это, когда я знаю индекс списка.
Это позволяет изменить список и инициировать событие изменения. ": Nth (n)" отсчитывает от индекса 0
источник
я пойду с: -
источник
Попробуй это
вы просто используете идентификатор поля выбора вместо #id (т.е. # select_name)
вместо значения параметра используйте значение параметра выбора
источник
Для Jquery выбрано, если вы отправляете атрибут в функцию и нужно обновить опцию выбора
источник
источник
$('select').val('the_value');
Выглядит правильное решение , и если у вас есть таблицы данных строк , то:источник
если вы не хотите использовать jQuery, вы можете использовать следующий код:
источник
Спасибо за вопрос. Надеюсь, этот кусок кода будет работать для вас.
источник
или
источник