Gernot Back: Dynamische Button-Events mit korrektem Bezug

Beitrag lesen

Hallo NetizenKane,

input.rowcount = rowcount-1;
input.onclick = function () { setColor('color_' + (rowcount-1) + ''); }

Hier solltest du auf die dem Element als Eigenschaft zugewiesene, Variable rowcount mit dem zum Zeitpunkt seiner Erstellung um eins verminderten Wert verweisen, also:

  
input.onclick = function () { setColor('color_' + this.rowcount + ''); }  

function setColor(id)
{
document.getElementById(id).value = "Farbe";
}

Wenn du der Funktion statt einer ID gleich das Objekt übergibst, kann es dessen Value auch ohne den Umweg über getElementById ändern.

  
input.meinAnzeigeFeld = document.createElement('input');  

und später dann

  
cell_2.appendChild(input);  
cell_2.appendChild(input.meinAnzeigeFeld);  

Dann kennt der Button (input) sein Anzeigefeld (input.meinAnzeigeFeld) und onclick kann er dann dieses, sein Anzeigefeld und nichts anderes in seiner jeweiligen Methode über diese seine Eigenschaft (this.meinAnzeigeFeld) ansprechen.

  
input.onclick = function setValue () {  
    this.meinAnzeigeFeld.value = "Hier bin ich richtig";  
}

Gruß Gernot