Задать вопрос
leni_m
@leni_m
ЧупаКобрус

Как сделать option в select :selected с помощью js?

<select id="select">
<option>Вася</option>
<option>Петя</option>
<option>Терпила</option>
</select>


var x = "Терпила";
Как сделать option :selected в зависимости от переменной x?
  • Вопрос задан
  • 49391 просмотр
Подписаться 1 Оценить Комментировать
Решения вопроса 2
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
<select id="select">
<option>Вася</option>
<option value=2>Петя</option>
<option>Терпила</option>
</select>

<script type="text/javascript">
var x=2;
document.getElementById('select').value= x;
</script>
Ответ написан
vikkyshostak
@vikkyshostak
< This head full of dreams.
Лучше всего в форме, также, задавать значения value для каждого из option. Иначе, какое значение вы будете передавать при submit формы? Сделать это проще простого:
<select id="select">
    <option value="Вася">Вася</option>
    <option value="Петя">Петя</option>
    <option value="Терпила">Терпила</option>
</select>

А вот сам скрипт:
const select = document.querySelector('#select').getElementsByTagName('option');

for (let i = 0; i < select.length; i++) {
    if (select[i].value === 'Терпила') select[i].selected = true;
}

ADD:

Если, всё-таки, каким-то неведомым образом нужно обойтись без значения value в option, то условие в цикле нужно переписать на вот это:
for (let i = 0; i < select.length; i++) {
    if (select[i].textContent === 'Терпила') select[i].selected = true;
    // Или вот на это, если там присутствует html, например:
    // if (select[i].innerHTML === '<p>Терпила</p>') select[i].selected = true;
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
NikitaShishkin
@NikitaShishkin
Вот из-за таких ответов самому приходится вспоминать как это делается
$('select option:eq(0)').prop('selected',true)

В eq ставится номер нужного option начиная с 0, т.е X или X-1
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы