Axel Richter: onclick verhalten und foo has no properties

Beitrag lesen

Hallo,

06    var i=0;
07    for(i; i <= trs.length; i++) {

^? Warum nicht nur kleiner als?

08
09        var tr = trs[i];

Nehmen wir an, es gibt drei TR-Elemente trs[0], trs[1] und trs[2], dann ist trs.length==3 und Deine Schleife zählt bis i==3, versucht also auf trs[3] zuzugreifen. Das ergibt undefined.

10        var buttons = tr.getElementsByTagName('button');

^undefined hat keine Eigenschaften.

13        buttons[0].onclick = sendInfo.addGoal(id, 0);

^hier wird sendInfo.addGoal(id, 0)aufgerufen und der Rückgabewert dieser Methode wird buttons[0].onclick zugewiesen. Willst Du buttons[0].onclick eine Methode des Objektes sendInfo als Funktion zuweisen, wäre das

buttons[0].onclick = sendInfo.addGoal;

Mit Attributen wäre es:

buttons[0].onclick = function() {sendInfo.addGoal(id, 0);};

Voraussetzung ist allerdings, dass sendInfo und id zum Zeitpunkt des Klicks auf den Button einen Wert haben.

viele Grüße

Axel