2010-10-21 24 views
30

sagen, dass ich eine Dropdown-Liste wie folgt aussehen:JavaScript: set Drop-Down ausgewählte Element basierend auf Option Text

<select id="MyDropDown"> 
    <option value="0">Google</option> 
    <option value="1">Bing</option> 
    <option value="2">Yahoo</option> 
</select> 

und ich möchte den ausgewählten Wert auf die Option Text basiert setzen, nicht der Wert mit Javascript. Wie kann ich das tun? Zum Beispiel kann ich mit C# etwas wie das unten stehende Beispiel tun und die Option mit "Google" auswählen.

ListItem mt = MyDropDown.Items.FindByText("Google"); 
if (mt != null) 
{ 
    mt.Selected = true; 
} 

Vielen Dank im Voraus für jede Hilfe!

Antwort

74
var textToFind = 'Google'; 

var dd = document.getElementById('MyDropDown'); 
for (var i = 0; i < dd.options.length; i++) { 
    if (dd.options[i].text === textToFind) { 
     dd.selectedIndex = i; 
     break; 
    } 
} 
5

Sie können die select_obj.options durchlaufen. Es gibt eine # Text-Methode in jedem Optionsobjekt, die Sie verwenden können, um mit dem zu vergleichen, was Sie wollen, und den selectedIndex von select_obj zu setzen.

0

Eine moderne Alternative:

const textToFind = 'Google'; 
const dd = document.getElementById ('MyDropDown'); 
dd.selectedIndex = [...dd.options].findIndex (option => option.text === textToFind); 
Verwandte Themen