I have been using the following code (with jQuery v1.4.2) to set the \'selected\' attribute of a select list based on its \'text\' description rather than its \'value\':
Using the filter() function seems to work in your test cases (tested in Firefox). The selector would look like this:
$('#mySelect1 option').filter(function () {
return $(this).text() === 'Banana';
});
setSelectedByText:function(eID,text) {
var ele=document.getElementById(eID);
for(var ii=0; ii<ele.length; ii++)
if(ele.options[ii].text==text) { //Found!
ele.options[ii].selected=true;
return true;
}
return false;
},
The following works for text entries both with and without spaces:
$("#mySelect1").find("option[text=" + text1 + "]").attr("selected", true);
We can do it by searching the text in options of dropdown list and then by setting selected attribute to true.
This code is run in every environment.
$("#numbers option:contains(" + inputText + ")").attr('selected', 'selected');
$("#my-select option:contains(" + myText +")").attr("selected", true);
This returns the first option containing your text description.