molily: onChange oder onClick über node einfügen

Beitrag lesen

Hallo,

var anzahl = document.getElementsByName(name)[0].length;

document.forms.name.elements.name ist wahrscheinlich performanter.

Außerdem führst du document.getElementsByName(name)[0] immer wieder aus. Das ist wirklich ein Performancekiller. Führe es einmal aus und speichere den zurückgegebenen Knoten in einer Variable.

var eingabefeld = document.forms.formular.elements[name];

var value;
var i = 0;
while(i < anzahl){
  if(document.getElementsByName(name)[0].options[i].selected == true){
   value = document.getElementsByName(name)[0].options[i].value;

if (eingabefeld.options[i].selected) [
  value = eingabefeld.options[i].value;
usw.
Auch den option-Elementknoten könnte man in einer Variable zwischenspeichern.

var neuername = "group".concat(zahl);

Reduziere die Komplexität wo möglich: Statt concat() geht auch ein simples "group" + zahl.

var dd_name     = document.createAttribute("name");

createAttribute ist meist unnötig kompliziert, setAttribute wie gesagt schon besser.

var dd_change   = document.createAttribute("onChange"); // <-- WICHTIGE STELLE 1

dd_change.nodeValue = 'javascript:addGroup("'+neuername+'");'; // <-- WICHTIGE STELLE 2

Mit einem Function-Statement erzeugt man eine Handler-Funktion, die alle Variablen des gegenwärtigen Geltungsbereiches übernimmt und somit addGroup mit dem richtigen Parameter aufrufen kann:
dropdown.onchange = function () { addGroup(neuername) };

Mathias