Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Выделить option в списке по значению value (https://javascript.ru/forum/misc/37439-vydelit-option-v-spiske-po-znacheniyu-value.html)

1lider 19.04.2013 18:30

Выделить option в списке по значению value
 
Добрый вечер!:)

Сразу к делу. Скажем, имеется у нас список:

Код:

<select id='sel'>
        <option value='none' selected>Курочка</option>
        <option value='koshka'>Кошка</option>
        <option value='utochka'>Уточка</option>
        <option value='korovka'>Коровка</option>
        <option value='sobachka'>Собачка</option>
</select>

<br><font onClick='set()'>Выделить Уточку</font>

Как выделить тот или иной option в данном спике, по значению value?

На ум приходит такой вариант:

function set() {
var optSel = document.getElementById("sel");
var optVal = "utochka";
	for(var i=0; i < optSel.length; i++) {
		if(optSel.options[i].value == optVal) {
			optSel.options[i].selected = true;
		}
	}
}


То есть, в данном варианте, мы перебираем по списку все option'ы и сверяем значение value. Но может можно как нибудь проще это сделать? Без цикла. А то если список будет большой, то и цикл затянется. Спасибо.

zebra 19.04.2013 18:38

Поставить value для селекта

1lider 19.04.2013 18:47

Цитата:

Поставить value для селекта
Пример можно?)

zebra 19.04.2013 18:58

document.getElementById("sel").value = 'value';

animhotep 19.04.2013 18:58

function set() {
var optSel = document.getElementById("sel");
var optVal = "utochka";
optSel.value = optVal;
}

1lider 19.04.2013 19:00

Цитата:

document.getElementById("sel").value = 'value';

Как же с помощью этого, можно поставить фокус на тот или иной элемент в списке?

animhotep 19.04.2013 19:01

это пример скелета, я привёл конкретно для вашего хтмл-а

1lider 19.04.2013 19:03

function set() {
var optSel = document.getElementById("sel");
var optVal = "utochka";
      for(var i=0; i < optSel.length; i++) {
         if(optSel.options[i].value == optVal) { // здесь сравниваем со значением в optVal
            optSel.options[i].selected = true; // если значение совпало, ставим фокус на данный option
         }
      }
}


А в моем варианте, не то же самое?:)

zebra 20.04.2013 11:24

Цитата:

Сообщение от 1lider
Как же с помощью этого, можно поставить фокус на тот или иной элемент в списке?

Какой фокус? Оно выделит нужный option, если найдет


Часовой пояс GMT +3, время: 13:31.