JQuery - Как выбрать элемент раскрывающегося списка по тексту? - PullRequest
20 голосов
/ 21 января 2011

Как выбрать элемент раскрывающегося списка по тексту, а не по значению?

Я хочу выбрать элемент раскрывающегося списка по тексту с помощью jQuery.

Ответы [ 6 ]

39 голосов
/ 21 января 2011

использование : содержит () (ссылка)

$("select option:contains(text)").attr('selected', true);

демо

9 голосов
/ 21 января 2011

В jQuery есть функция фильтра , которую вы можете использовать для получения элементов с чем-то более конкретным

$("select option").filter(function() {
    return $(this).text() == "text_to_select";
});

. Здесь будут возвращены все опции с параметром "text_to_select" втекст.

3 голосов
/ 21 января 2011

Я думаю, это поможет тебе ...

$("#selectId").find("option:contains('text')").each(function(){
  if( $(this).text() == 'Text that should be matched' ) {
    $(this).attr("selected","selected");
  }
});
0 голосов
/ 02 августа 2016
$("selecter option:contains('" + data[i].ID+ "')").attr('selected', 'selected');
0 голосов
/ 17 декабря 2015

У меня был похожий сценарий с выпадающими списками для страны, штата и города.Страна имела "Индию", а также "Британскую территорию в Индийском океане".Проблема с :contains() заключается в том, что он пытается выполнить оба матча.Я сделал что-то вроде:

$('#country option').each(function(){
    if($(this).text() == 'India'){
        $(this).prop('selected', true).trigger('change');
    }
});
0 голосов
/ 02 июля 2014

Вот код, который я использую (он не совсем совпадает с другими предложениями здесь и работает с jQuery v1.8.3)

var userToSearchFor = 'mike';   //  Select any options containing this text

$("#ListOfUsers").find("option:contains('" + userToSearchFor +"')").each(function () {
   $(this).attr("selected", "selected");
});

<select id="ListOfUsers" ></select>

Надеюсь, это поможет.

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