Как сделать первый вариант <select>, выбранный с помощью jQuery

Как сделать первый вариант с помощью jQuery?

<select id="target">
  <option value="1">...</option>
  <option value="2">...</option>
</select>

Ответ 1

$("#target").val($("#target option:first").val());

Ответ 2

// remove "selected" from any options that might already be selected
$('#target option[selected="selected"]').each(
    function() {
        $(this).removeAttr('selected');
    }
);


// mark the first option as selected
$("#target option:first").attr('selected','selected');

Ответ 3

Вы можете попробовать это

$("#target").prop("selectedIndex", 0);

Ответ 4

Когда вы используете

$("#target").val($("#target option:first").val());

это не будет работать в Chrome и Safari, если первое значение параметра равно null.

Я предпочитаю

$("#target option:first").attr('selected','selected');

поскольку он может работать во всех браузерах.

Ответ 5

Изменение значения входа выбора или настройка выбранного атрибута может переписать свойство selectedOptions по умолчанию для элемента DOM, в результате чего элемент, который не может reset правильно в форме, которая вызвала событие reset.

Использовать метод поддержки jQuery для очистки и установки необходимого параметра:

$("#target option:selected").prop("selected", false);
$("#target option:first").prop("selected", "selected");

Ответ 6

$("#target")[0].selectedIndex = 0;

Ответ 7

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

Цепочка вызова .change() до конца также обновит виджет пользовательского интерфейса.

$("#target").val($("#target option:first").val()).change();

(Обратите внимание, что я заметил это при использовании jQuery Mobile и окна на рабочем столе Chrome, так что это может быть не везде).

Ответ 8

Если вы отключили опции, вы можете добавить не ([отключено]), чтобы предотвратить их выбор, что приводит к следующему:

$("#target option:not([disabled]):first").attr('selected','selected')

Ответ 9

Другим способом для reset значений (для нескольких выбранных элементов) может быть следующее:

$("selector").each(function(){

    /*Perform any check and validation if needed for each item */

    /*Use "this" to handle the element in javascript or "$(this)" to handle the element with jquery */

    this.selectedIndex=0;

});

Ответ 10

Я обнаружил, что только настройка attr не работает, если уже есть выбранный атрибут. Используемый мной код сначала отключит выбранный атрибут, затем выберите первый вариант.

$('#target').removeAttr('selected').find('option:first').attr('selected', 'selected');

Ответ 11

$('#newType option:first').prop('selected', true)

Ответ 12

Простой:

$('#target option:first').prop('selected', true);

Ответ 13

Вот как я это сделаю:

$("#target option")
    .removeAttr('selected')
    .find(':first')     // You can also use .find('[value=MyVal]')
        .attr('selected','selected');

Ответ 14

Хотя каждая функция, вероятно, не нужна...

$('select').each(function(){
    $(this).find('option:first').prop('selected', 'selected');
});

работает для меня.

Ответ 15

Если вы собираетесь использовать первый вариант по умолчанию, например

<select>
    <option value="">Please select an option below</option>
    ...

то вы можете просто использовать:

$('select').val('');

Это хорошо и просто.

Ответ 16

Использование:

$("#selectbox option:first").val()

Пожалуйста, найдите простой в этот JSFiddle.

Ответ 17

На обратной стороне ответа Джеймса Ли Бейкера я предпочитаю это решение, поскольку оно устраняет зависимость от поддержки браузера: first: selected...

$('#target').children().prop('selected', false);
$($('#target').children()[0]).prop('selected', 'selected');

Ответ 18

Он работал только для меня, используя триггер ('change') в конце, например:

$("#target option:first").attr('selected','selected').trigger('change');

Ответ 19

Для меня это работало только тогда, когда я добавил следующий код:

.change();

Для меня это работало только тогда, когда я добавил следующий код: Поскольку я хотел "reset" форму, то есть выбрать все первые варианты всех выбранных форм, я использовал следующий код:

$('form').find('select').each(function(){ $(this).val($("select option:first").val()); $(this).change(); });

Ответ 20

$("#target").val(null);

работал отлично в хроме

Ответ 21

Если вы сохраняете объект jQuery элемента select:

var jQuerySelectObject = $("...");

...

jQuerySelectObject.val(jQuerySelectObject.children().eq(0).val());

Ответ 22

Использование:

alert($( "#target option:first" ).text());

Ответ 23

Проверьте этот лучший подход, используя jQuery с ECMAScript 6:

$('select').each((i, item) => {
  var $item = $(item);
  $item.val($item.find('option:first').val()); 
});