Установить выбранный индекс выпадающего с помощью jQuery

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

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

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

Ответы на вопрос(9)

Решение Вопроса

каждый элемент 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);
 KBN25 июл. 2014 г., 09:54
@gnarf aren 'Идентификаторы быстрее?
 Alexander06 янв. 2017 г., 10:49
Как перейти к первому элементу множественного выбора в IE, но сохранить все выбранные элементы ??
 SearchForKnowledge15 апр. 2015 г., 16:34
Как насчет того, если у меня есть несколько ASP.net DropDownList с другим выбранным значением индекса?
 gnarf22 авг. 2009 г., 01:07
Да - если вы можете назначить класс элементу (элементам), который вам нужно найти, это будет намного более быстрый селектор.
 gnarf01 авг. 2014 г., 03:52
#an-id быстрее, но*[id$=ends-with] намного медленнее, вот чтоназначить класс элементу имеет значение
 Christopher Lörken28 окт. 2016 г., 09:31
Правильный ответ, но также проверьте ответ PaulG: чтобы визуально обновить Dropbox,$("select#elem").val('0').change() может быть использован дляи то и другое выбор и обновление пользовательского интерфейса.
 Jay Irvine13 авг. 2018 г., 19:26
если ты можешь'добавить класс к элементу (ам),$("select[id$='" + originalId + "']") по крайней мере, oodles быстрее, чем$("*[id$='" + originalId + "']")
 oz.22 авг. 2009 г., 00:57
Есть ли лучший способ сделать это? Я понял этоЯ просканировал весь DOM, чтобы он соответствовал идентификатору, но так какЯ новичок в JQuery, я понял, давайтезаставить его работать, а затем посмотреть, есть лилучший способ сделать это. Любой совет будет оценен.

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

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

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

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

пример на jsfiddle

 Lambart23 сент. 2015 г., 01:24
правильное решение ... для конкурса код-обфускация! :)

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

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

$('#mydropdown').val('first').change();
 Viraj Dhamal11 сент. 2015 г., 13:15
Спасибо за Ваш ответ. Только этот ответ работает для меня
 buddhiv10 окт. 2018 г., 08:40
Спасибо за указание на это!!
 Lambart23 сент. 2015 г., 01:15
Также в 2015 году у меня нет проблем сprop('selectedIndex', ...); (протестировано с Chrome & Firefox) изменение выбора.
 Lambart23 сент. 2015 г., 01:20
Для чего этоСтоит отметить, что выВы делаете по-другому здесь вызываетchange событие в раскрывающемся списке, которое также может быть полезным исправлением / обходным решением для людей, которые меняют выбор, вызываяprop('selectedIndex', ...), скорее, чемval(...), Возможно, проблема была в том, что тыслушаюchange событие, и ЭТОс чего не былоработает на тебя? Это'правда, что просто меняяpropЭрти не собирается запускать какие-либо события ...

м использую

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

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

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

Выбрать 2-й вариант

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

Здесь мы добавляем триггерменять') чтобы устроить событие.

$('#your-select-box-id :nth-child(2)').prop('selected', true).trigger('change');
 Ben Dehghan19 июн. 2018 г., 00:44
это гораздо лучший ответ.

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

 SearchForKnowledge15 апр. 2015 г., 16:36
как насчет многих элементов?
 BiLaL19 апр. 2014 г., 12:54
+1 за добавление. Мой старый код сломался из-за этой проблемы
 4imble21 нояб. 2011 г., 18:05
Правильно, это на самом деле может не работать в 1.7. увидеть принятый ответ:stackoverflow.com/questions/8010664/...
 gnarf11 авг. 2011 г., 15:59
А с jQuery 1.6 вы должны использовать.prop('selectedIndex', 0); независимо от того, если.attr() работает или нет :)

Код 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>
 Ixalmida13 июл. 2017 г., 20:27
Это работало лучше всего для меня в версии 2.2.1

Ваш ответ на вопрос