Подтвердить что ты не робот

Как использовать JQuery для выбора n-й опции

У меня есть следующий HTML

<select onchange="this.form.submit()" name="name">
    <option value="9995101E01#17201044055PM">9995101E01#17201044055PM</option>
    <option value="GRR-Example">GRR-Example</option>
    <option value="admin">admin</option>
    <option value="123w">123w</option>
</select>

Могу ли я узнать, как я могу использовать JQuery для параметра со значением "admin"?

4b9b3361

Ответ 1

$('select[name=name] option:eq(2)').attr('selected', 'selected');

Демо.

Ответ 2

Вот так:

$("select[name='name'] option:eq(2)").attr("selected", "selected");

EDIT:

Чтобы сделать то, что вы хотите в своем новом редактировании, то есть выберите параметр, который имеет значение admin:

$("select[name='name'] option:contains('admin')").attr("selected", "selected");

Посмотрите, как работает.

Ответ 3

Я думаю, что псевдо-класс nth-child - это то, что вы ищете:

$('select option:nth-child(3)').attr('selected', 'selected');

Ответ 4

Я не советую устанавливать значение select с помощью .attr('selected', 'selected'). Это плохая практика. Если два параметра имеют атрибут "selected", то каково значение select?

Вот простая и легкая версия, которая будет работать:

 $('select[name="name"]').val('admin');

DEMO

Ответ 5

Если вы хотите выбрать n-й вариант и запускать событие onchange, то:

function selectOption(nr) {
    var select = $("select");
    if (select.children().length >= nr) {
        let value = select.find('option:eq(' + nr + ')').val();
        select.val(value).change();
    }
}

Ответ 6

Просто обновление в случае, если это помогает кому-то. У меня было аналогичное требование, но в моем случае выпадающий список был сохранен как переменная JavaScript. Также мне понравилось, как Денис Матафонов предложил сделать выбранный вариант выбранным. Итак, вот заключительный блок кода:

var target_dd = $('select[name=name]');
$(target_dd).val($(target_dd).find('option:eq(2)').html());