jobo: Strukturierung einer Aufgabenstellung mit Javascript

Beitrag lesen

Hallo,

Innerhalb der Funktion kannst du mit this auf das select-Element sowie seine untergeordneten option-Elemente und deren values zugreifen und damit tun, was du eigentlich vorhast. Dein jetziger Ansatz ist jedenfalls ... hmm, nett ausgedrückt: ungünstig.

Ja "this" ist eine feine Sache. In meiner Umsetzung habe ich aber das Auswahlelement und die Optionelement vorab einmalig per Id und getElementsByTagName extrahiert, sonst würde ja jeder onchange wieder im Dokumentenbaum bzw. dem Zweig innerhalb des Select-Elements ("this") wurschteln. Außerdem geht "this" doch in den Unterfunktionen ggf. verloren und müsste via closure oder als Parameter zur Weiterverarbeitung doch übergeben werden, oder?

  
<select id="Auswahl">  
<option value="Funktion_1();">Auswahl_1</option>  
<option value="Funktion_2();">Auswahl_2</option>  
<option value="Funktion_3();">Auswahl_3</option>  
</select>  
<p id="output">Ausgabe</p>  
<script type="text/javascript">  
[code lang=javascript]setAuswahlHandler = function() {  
	var auswahl = document.getElementById("Auswahl");  
	var output  = document.getElementById("output");  
	var oL =auswahl.getElementsByTagName("option");  
	auswahl.onchange = function() {  
		var sI = auswahl.selectedIndex;  
		makeSomething(sI);  
	}  
	makeSomething = function(sI) {  
		output.innerHTML = "you selected " + oL[sI].innerHTML + " with value " + oL[sI].value;  
	}  
}  
setAuswahlHandler();  

</script>
[/code]

Gruß

jobo