Установите выделенный индекс в раскрывающемся списке, используя jQuery

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

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

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

Ответ 1

Прежде всего - этот селектор довольно медленный. Он сканирует каждый элемент 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);

Ответ 2

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

Это установит фактический индекс точно так же, как вариант ответа 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);

Ответ 3

Я использую

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

чтобы выбрать элемент опции с значением = 'xyz'

Ответ 4

Код 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>

Ответ 5

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

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

$('#mydropdown').val('first').change();

Ответ 6

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

$("*[id$='" + originalId + "']").val($("*[id$='" + originalId + "'] option:first").attr('value'));

Ответ 7

$("[id$='" + originalId + "']").val("0 index value");

установит его на 0

Ответ 8

Чтобы выбрать вторую опцию

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

Здесь мы добавляем `trigger ('change'), чтобы сделать событие пожарным.

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

Ответ 9

Выберите четвертый вариант

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

пример jsfiddle