jQuery: установить выбранное значение выпадающего списка?

#javascript #jquery

#javascript #jquery

Вопрос:

Что не так с этим кодом?

jQuery

 $(document).ready(function() {
    $("#routetype").val('quietest');
)};
  

HTML

 <select id="routetype" name="routetype">
    <option value="fastest">Fastest</option>
    <option selected="true" value="balanced">Balanced</option>
    <option value="quietest">Quietest</option>
</select>
  

Скрипка

Это дает мне «Сбалансированный» в качестве выбранного параметра, а не «Самый тихий».

Комментарии:

1. Вам нужно выбрать jQuery в выпадающем списке слева, и у вас возникает синтаксическая ошибка, потому что $(document).ready должно заканчиваться на }); not )}; See: jsfiddle.net/x3UyB/2

2. @mVChr ты должен опубликовать это в качестве ответа =)

3. @mVChr спасибо, пожалуйста, опубликуйте в качестве ответа 🙂

Ответ №1:

ОБНОВЛЕННЫЙ ОТВЕТ:

Старый ответ, правильный метод в настоящее время заключается в использовании jQuery .prop() . IE, element.prop("selected", true)

СТАРЫЙ ОТВЕТ:

Используйте это вместо:

 $("#routetype option[value='quietest']").attr("selected", "selected");
  

Скрипка: http://jsfiddle.net/x3UyB/4

Комментарии:

1. что, если я хочу использовать переменную вместо жестко запрограммированного значения (например, «самый тихий»?

2. @Kevin Вы всегда можете сделать $("#routetype option").each() , чтобы сравнить выпадающие значения, или просто $("#routetype option[value='" option_value "']");

3. @mattsven, таким образом, я получаю selected =’выбранный’ для двух вариантов. просто к вашему сведению.

Ответ №2:

Вам нужно выбрать jQuery в выпадающем списке слева, и у вас возникает синтаксическая ошибка, потому что $(document).ready должно заканчиваться на }); не )}; проверять эту ссылку.

Комментарии:

1. Спасибо. На самом деле проблема заключалась в том, что я работал с jQuery Mobile, и вам также нужно позвонить $("#routetype").selectmenu('refresh'); , чтобы обновить отображаемое.

Ответ №3:

Вы можете выбрать значение параметра выпадающего списка по имени

 jQuery("#option_id").find("option:contains('Monday')").each(function()
{
 if( jQuery(this).text() == 'Monday' )
 {
  jQuery(this).attr("selected","selected");
  }
});