如果您<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() vs .attr()用於解釋)。
這裏有一個的jsfiddle你可以用給定了這個問題,這表明這個人是可靠地工作的唯一一個所有三個答案玩:jQuery的的http://jsfiddle.net/3cLm5/1/
可能重複 - 設置的選定值選擇控制通過它的文字描述](http://stackoverflow.com/questions/496052/jquery-setting-the-selected-value-of-a-select-control-via-its-text-description) – 2013-07-01 21:44:46