Если ваши <option>
элементы не имеют атрибутов value
, тогда вы можете просто использовать .val
:
$selectElement.val("text_you're_looking_for")
Однако, если ваши элементы <option>
имеют атрибуты значения или могут появиться в будущем, это не сработает, потому что, когда это возможно, .val
будет выбирать опцию по атрибуту value
, а не по текстовому содержимому. , Нет встроенного метода jQuery, который бы выбирал опцию по ее текстовому содержимому, если у опций есть атрибуты value
, поэтому нам придется добавить его самостоятельно с помощью простого плагина:
/*
Source: https://stackoverflow.com/a/16887276/1709587
Usage instructions:
Call
jQuery('#mySelectElement').selectOptionWithText('target_text');
to select the <option> element from within #mySelectElement whose text content
is 'target_text' (or do nothing if no such <option> element exists).
*/
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}
);
// We use `.prop` if it's available (which it should be for any jQuery
// versions above and including 1.6), and fall back on `.attr` (which
// was used for changing DOM properties in pre-1.6) otherwise.
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/