Ответ 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;
}
}
Скажем, у меня есть раскрывающийся список:
<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;
}
Заранее благодарим за помощь!
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;
}
}
Вы можете выполнить цикл select_obj.options. В каждом объекте опции есть метод #text, который вы можете использовать для сравнения с тем, что хотите, и установите значение selectedIndex для select_obj.
Современная альтернатива:
const textToFind = 'Google';
const dd = document.getElementById ('MyDropDown');
dd.selectedIndex = [...dd.options].findIndex (option => option.text === textToFind);