Der Martin: Strukturierung einer Aufgabenstellung mit Javascript

Beitrag lesen

Hi,

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.
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.

warum das?
Ich muss mich natürlich korrigieren. Eine parameterlose Funktion erfüllt hier nicht den erwünschten Zweck, wenn man den Eventhandler als Attribut im HTML notiert. Die Funktion muss zumindest "wissen", mit welchem Element sie arbeiten soll. Also muss man in diesem Fall selbst eine Referenz auf das Element übergeben.

<select [...] onchange="DoSomething(this);">
   <option value="A">Punkt 1</option>
   <option value="B">Punkt 2</option>
   <option value="B">Punkt 3</option>
  </select>

function DoSomething(sel)
   { var i=sel.selectedIndex;
     alert("Ausgewählter Wert: " + sel.options[i].value);
   }

Außerdem geht "this" doch in den Unterfunktionen ggf. verloren und müsste via closure oder als Parameter zur Weiterverarbeitung doch übergeben werden, oder?

Deswegen hatte ich empfohlen, die Verarbeitung in *einer* Funktion zu machen. Wenn man Teile modularisiert und in weitere Funktionen ausgliedert, muss man die nötigen Parameter natürlich auch weiterreichen.

Ciao,
 Martin

--
Lebensmotto der Egoisten:
Was ist so schlimm daran, dass jeder nur an sich selbst denkt? Dann ist doch an alle gedacht!