Ответ 1
$('select[name=name] option:eq(2)').attr('selected', 'selected');
Демо.
У меня есть следующий 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"?
$('select[name=name] option:eq(2)').attr('selected', 'selected');
Демо.
Вот так:
$("select[name='name'] option:eq(2)").attr("selected", "selected");
EDIT:
Чтобы сделать то, что вы хотите в своем новом редактировании, то есть выберите параметр, который имеет значение admin
:
$("select[name='name'] option:contains('admin')").attr("selected", "selected");
Я думаю, что псевдо-класс nth-child
- это то, что вы ищете:
$('select option:nth-child(3)').attr('selected', 'selected');
Я не советую устанавливать значение select с помощью .attr('selected', 'selected')
.
Это плохая практика. Если два параметра имеют атрибут "selected", то каково значение select?
Вот простая и легкая версия, которая будет работать:
$('select[name="name"]').val('admin');
Если вы хотите выбрать 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();
}
}
Просто обновление в случае, если это помогает кому-то. У меня было аналогичное требование, но в моем случае выпадающий список был сохранен как переменная JavaScript. Также мне понравилось, как Денис Матафонов предложил сделать выбранный вариант выбранным. Итак, вот заключительный блок кода:
var target_dd = $('select[name=name]');
$(target_dd).val($(target_dd).find('option:eq(2)').html());