Ответ 1
$("select option:contains(text)").attr('selected', true);
Как выбрать элемент раскрывающегося списка по тексту, а не значение?
Я хочу выбрать выпадающий элемент по тексту с помощью jQuery.
$("select option:contains(text)").attr('selected', true);
Это приведет к возврату всех параметров с текстом text_to_select.
Я думаю, что это сделает трюк для вас...
$("#selectId").find("option:contains('text')").each(function(){
if( $(this).text() == 'Text that should be matched' ) {
$(this).attr("selected","selected");
}
});
Вот код, который я использую (это не совсем то же самое, что и другие предложения здесь, и работает с 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>
Надеюсь, что это поможет.
У меня был аналогичный сценарий с выпадающими списками для страны, штата и города. У страны была "Индия", а также "Британская территория в Индийском океане". Проблема с :contains()
заключается в том, что он пытается выполнить оба совпадения. Я сделал что-то вроде:
$('#country option').each(function(){
if($(this).text() == 'India'){
$(this).prop('selected', true).trigger('change');
}
});
$("selecter option:contains('" + data[i].ID+ "')").attr('selected', 'selected');