Hallo,
07 for(i; i <= trs.length; i++) {
08
09 var tr = trs[i];
10 var buttons = tr.getElementsByTagName('button');
11 var id = tr.getAttribute('id').slice(1);
12
13 buttons[0].onclick = sendInfo.addGoal(id, 0);
14 }
Dann ist es für mich eine einzige Zeile, für alle Buttons.
Oder was fehlt da jetzt noch?
Ja das war ein Vereinfachtes Beispiel. Im Beispiel greife ich ja -- so weit ich das verstehe -- nur auf den ersten Button im tr zu. In einem tr gibt es aber -- über verschiedene td verteilt -- bis zu 15 Buttons, die ich dann einzeln mit:
13 buttons[0].onclick = sendInfo.addGoal(id, 0);
14 buttons[1].onclick = sendInfo.delGoal(id, 0);
15 buttons[2].onclick = sendInfo.addGoal(id, 1);
16 buttons[3].onclick = sendInfo.delGoal(id, 1);
17 [und so weiter bis buttons[14] oder so]
Ich habe mir das aber jetzt anders überlegt und mit Daniels Hilfe aus dem #selfhtml Chat so etwas hinbekommen was jetzt auch funktioniert, und ich verstehe jetzt endlich was du damit meinst wenn du sagst das lokale Variabeln nicht ganz lokal sind oder so ;-)
function addBehaviour() {
var table = document.getElementsByTagName('table')[0];
var trs = table.getElementsByTagName('tr');
for(var i=0; i < trs.length; i++) {
var tr = trs[i];
var id = tr.getAttribute('id').slice(1);
var buttons = tr.getElementsByTagName('button');
var local = function() {
var sendInfo = new Action(id);
buttons[0].onclick = function() { sendInfo.addGoal('heim'); };
buttons[1].onclick = function() { sendInfo.delGoal('heim'); };
buttons[2].onclick = function() { sendInfo.addGoal('gast'); };
buttons[3].onclick = function() { sendInfo.delGoal('gast'); };
// und so weiter
};
local();
}
}
Grüße
Jeena Paradies