Как выбрать запись в выпадающем списке, используя jquery? - PullRequest
0 голосов
/ 03 июня 2011

У меня есть комбинированный список HTML, в котором есть две записи. Один пустой, а другой текст. Я не знаю, каковы значения.

Есть ли в любом случае с помощью jquery (с учетом вышеуказанного), что я могу иметь запись с текстом в нем программно выбран в выпадающем списке?

Ответы [ 4 ]

1 голос
/ 03 июня 2011

это один из способов сделать это

при условии, что это HTML

<select size="5" id="foobar">
   <option value="">foo</option>
    <option value="bar">bar</option>
</select>

Вот JQuery

$('#foobar option:nth-child(2)').prop('selected',true);

вот рабочая демонстрация

1 голос
/ 03 июня 2011

Выбирает первый непустой параметр :

$("#mySelectBox").val(function() {
  for (var i = 0; i<this.options.length; i++) {
    if (this.options[i].text != "") return this.options[i].value;
  }
});

Вы можете сделать $.trim(this.options[i].text), если текст может содержать пробелы.

Это обобщенное решение, если вы уверены, что всегда хотите выбрать опцию second , конечно, существует более простой метод - см. ответ mcgrailm .

0 голосов
/ 03 июня 2011

Селектор Pure JQuery, который выбирает первую непустую опцию (на основе текста опции):

$('#myDropDown option:not(:empty):first')

Используя следующий образец:

<select size="5" id="foobar">
    <option value="emptyoption"></option>
    <option value="bar">bar</option>
</select>

Выбирает опцию «bar»:

$('#foobar option:not(:empty):first').prop('selected',true);
0 голосов
/ 03 июня 2011

Как насчет сортировки списка:

$("#combo").html($("#combo option").sort(function (a, b) {
    return a.text == b.text ? 0 : a.text < b.text ? -1 : 1
}));

Но из интереса, почему у опции нет выбранного значения - она ​​создается динамически?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...