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

JavaScript: набор выпадающих элементов выбранного объекта на основе текста опции

Скажем, у меня есть раскрывающийся список:

<select id="MyDropDown">
    <option value="0">Google</option>
    <option value="1">Bing</option>
    <option value="2">Yahoo</option>
</select>

и я хочу установить выбранное значение на основе текста опции, а не значения с javascript. Как я могу это сделать? Например, с помощью С# я могу сделать что-то вроде приведенного ниже примера, и будет выбран вариант с "Google".

ListItem mt = MyDropDown.Items.FindByText("Google");
if (mt != null)
{
   mt.Selected = true;
}

Заранее благодарим за помощь!

4b9b3361

Ответ 1

var textToFind = 'Google';

var dd = document.getElementById('MyDropDown');
for (var i = 0; i < dd.options.length; i++) {
    if (dd.options[i].text === textToFind) {
        dd.selectedIndex = i;
        break;
    }
}

Ответ 2

Вы можете выполнить цикл select_obj.options. В каждом объекте опции есть метод #text, который вы можете использовать для сравнения с тем, что хотите, и установите значение selectedIndex для select_obj.

Ответ 3

Современная альтернатива:

const textToFind = 'Google';
const dd = document.getElementById ('MyDropDown');
dd.selectedIndex = [...dd.options].findIndex (option => option.text === textToFind);