Установить выбранный индекс выпадающего с помощью jQuery - PullRequest
159 голосов
/ 22 августа 2009

Как установить индекс раскрывающегося списка в jQuery, если способ нахождения элемента управления выглядит следующим образом:

$("*[id$='" + originalId + "']") 

Я делаю это таким образом, потому что я создаю элементы управления динамически, и поскольку идентификаторы меняются при использовании веб-форм, я нашел это как обходной путь, чтобы найти мне некоторые элементы управления. Но когда у меня есть объект jQuery, я не знаю, как установить для выбранного индекса значение 0 (ноль).

Ответы [ 9 ]

339 голосов
/ 22 августа 2009

Прежде всего - этот селектор довольно медленный. Он будет сканировать каждый элемент DOM в поисках идентификаторов. Если вы назначите класс элементу, это будет меньше сказываться на производительности.

$(".myselect")

Чтобы ответить на ваш вопрос, есть несколько способов изменить значение элементов select в jQuery

// sets selected index of a select box to the option with the value "0"
$("select#elem").val('0'); 

// sets selected index of a select box to the option with the value ""
$("select#elem").val(''); 

// sets selected index to first item using the DOM
$("select#elem")[0].selectedIndex = 0;

// sets selected index to first item using jQuery (can work on multiple elements)
$("select#elem").prop('selectedIndex', 0);
105 голосов
/ 23 июня 2010

Только что нашел, это работает для меня, и мне лично легче читать.

Это установит фактический индекс так же, как вариант ответа gnarf № 3.

// sets selected index of a select box the actual index of 0 
$("select#elem").attr('selectedIndex', 0);

Это раньше не работало, но теперь работает ... см. Ошибку: http://dev.jquery.com/ticket/1474

Добавление

Как рекомендуется в комментариях использовать:

$("select#elem").prop('selectedIndex', 0);

9 голосов
/ 05 февраля 2015

Я пишу этот ответ в 2015 году, и по какой-то причине (возможно, более ранние версии jQuery) ни один из других ответов не помог мне. Я имею в виду, они изменяют выбранный индекс, но на самом деле это не отражается на фактическом выпадающем списке.

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

$('#mydropdown').val('first').change();
9 голосов
/ 03 апреля 2014

JQuery код:

$("#sel_status").prop('selectedIndex',1);

JSP код:

Status:
<select name="sel_status"
    id="sel_status">
    <option value="1">-Status-</option>
    <option>ALL</option>
    <option>SENT</option>
    <option>RECEIVED</option>
    <option>DEACTIVE</option>
</select>
9 голосов
/ 12 июля 2012

Я использую

$('#elem').val('xyz');

для выбора элемента option, который имеет значение = 'xyz'

3 голосов
/ 22 августа 2009

Вы хотите получить значение первой опции в элементе select.

$("*[id$='" + originalId + "']").val($("*[id$='" + originalId + "'] option:first").attr('value'));
2 голосов
/ 13 июня 2016

Для выбора 2-го варианта

$('#your-select-box-id :nth-child(2)').prop('selected', true);

Здесь мы добавляем триггер («изменение»), чтобы вызвать событие.

$('#your-select-box-id :nth-child(2)').prop('selected', true).trigger('change');
1 голос
/ 22 августа 2009
$("[id$='" + originalId + "']").val("0 index value");

установит значение 0

0 голосов
/ 03 сентября 2013

Выберите 4-й вариант

$('#select').val($('#select option').eq(3).val());

пример на jsfiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...