Якщо ваші <option>елементи не мають valueатрибутів, ви можете просто використовувати .val:
$selectElement.val("text_you're_looking_for")
Однак, якщо ваші <option>елементи мають атрибути значення або можуть робити це в майбутньому, це не спрацює, оскільки, коли це можливо, .valбуде вибирати параметр за його valueатрибутом, а не за текстовим вмістом. Немає вбудованого методу jQuery, який буде вибирати параметр за його текстовим вмістом, якщо параметри мають valueатрибути, тому нам доведеться додати його самостійно за допомогою простого плагіна:
jQuery.fn.selectOptionWithText = function selectOptionWithText(targetText) {
return this.each(function () {
var $selectElement, $options, $targetOption;
$selectElement = jQuery(this);
$options = $selectElement.find('option');
$targetOption = $options.filter(
function () {return jQuery(this).text() == targetText}
);
if ($targetOption.prop) {
$targetOption.prop('selected', true);
}
else {
$targetOption.attr('selected', 'true');
}
});
}
Просто додайте цей плагін десь після того, як ви додасте jQuery на сторінку, а потім зробіть
jQuery('#someSelectElement').selectOptionWithText('Some Target Text');
, щоб вибрати опції.
Метод плагіна використовує, filterщоб вибрати лише optionвідповідний targetText, і вибирає його, використовуючи .attrабо .prop, залежно від версії jQuery ( для пояснення див. .Prop () проти .attr () ).
Ось JSFiddle, за допомогою якого можна зіграти з усіма трьома відповідями на це запитання, що демонструє, що цей єдиний надійно працює: http://jsfiddle.net/3cLm5/1/