Wenn Ihre <option>Elemente keine valueAttribute haben, können Sie einfach Folgendes verwenden .val:
$selectElement.val("text_you're_looking_for")
Wenn Ihre <option>Elemente jedoch Wertattribute haben oder dies möglicherweise in Zukunft tun, funktioniert dies nicht, da .valeine Option nach Möglichkeit anhand ihres valueAttributs anstelle ihres Textinhalts ausgewählt wird. Es gibt keine integrierte jQuery-Methode, die eine Option anhand ihres Textinhalts auswählt, wenn die Optionen valueAttribute haben. Daher müssen wir eine Option selbst mit einem einfachen Plugin hinzufügen:
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');
}
});
}
Fügen Sie dieses Plugin einfach irgendwo hinzu, nachdem Sie jQuery zur Seite hinzugefügt haben, und tun Sie es dann
jQuery('#someSelectElement').selectOptionWithText('Some Target Text');
Optionen auswählen.
Die Plugin-Methode wählt filternur den optionpassenden Zieltext aus und wählt ihn je nach jQuery-Version entweder .attroder aus ( Erläuterungen .propsiehe .prop () vs .attr () ).
Hier ist eine JSFiddle, mit der Sie mit allen drei Antworten auf diese Frage spielen können. Dies zeigt, dass diese die einzige ist, die zuverlässig funktioniert: http://jsfiddle.net/3cLm5/1/