Moin!
Das erste Feld soll als id "test1" haben, das zweite "test2" usw. bis zum Feld 64 mit id als "test64".
document.writeln('<td align="center"><img src="test1.gif" id="test'+((i+1)*(j+1))+'" wert="feld'+((i+1)*(j+1))+'">');
Dein Ansatz, die Zählvariablen der Schleife zu verwenden, ist nicht verkehrt - nur richtig umsetzen muß man es.
Als Gedankenvorbild unser Zahlensystem zu nehmen ist nicht verkehrt.
Gegeben:
einer = 5
zehner = 3
Wie kriegt man aus den zwei Variablen eine neue, die den Wert 35 hat?
Lösung: einer + 10 * zehner = wert
Die Konstante 10 gibt hierbei an, wieviele verschiedene Ziffern es gibt.
In einem Schachfeld mit nur 8 Feldern geht das ganz genau so. Der Zähler zeile kann der "Zehner" sein, der Zähler spalte der "Einer", und das Zahlensystem steht in row _oder_ column, je nachdem, welcher Wert der höherwertige ist.
var row = 8;
var column = 8;
var zeile;
var spalte;
for(zeile=0;zeile<row;zeile++)
{
for(spalte=0;spalte<column;spalte++)
{
document.write("Zelle " + (spalte + zeile*row) + " - ");
}
document.write("<br>");
}
Startwerte sind:
zeile = 0
spalte = 0
Ergebnis: 0 + 0*8 = 0
Das letzte Feld der ersten Zeile hat:
zeile = 0
spalte = 7
Ergebnis: 7 + 0*8 = 7
Das erste Feld der zweiten Zeile hat:
zeile = 1
spalte = 0
Ergebnis: 0 + 1*8 = 8
Wenn die Feldnummerierung nicht bei 0, sondern bei 1 beginnen soll, muß man einfach noch +1 addieren.
Und für eine Numerierung nicht in Zeilen, sondern in Spalten, ist das Programm auch schnell umgestellt:
document.write("Zelle " + (spalte*column + zeile ) + " - ");
Es funktioniert sogar, das Feld komplett von rückwärts numerieren zu lassen (Feld Nr. 0 ganz rechts unten):
document.write("Zelle " + ( (column-spalte-1)*column + (row-zeile-1) ) + " - ";
Und mit passender Kombination von allen Methoden ist es möglich, auch alle sonst denkbaren Numerierungsrichtungen zu erreichen.
Ich muß allerdings sagen, dass das hochzählen einer schlichten Extra-Variable vermutlich eine schnellere Lösung ist. Erstens hat Javascript wesentlich weniger zu rechnen, und zweitens kommt man schneller drauf. Diese Lösung hilft eben nur dann nicht, wenn die Numerierung anders verlaufen soll, als die Ausgabe der Felder.
Und noch eine Anmerkung: Ich würde die Felder eines Schachbrettes nicht durchnumerieren, sondern ihre Koordinaten in die ID (oder den Namen) integrieren und die zwei Zahlen durch ein Trennzeichen von der Mischung abhalten:
document.write("id='zelle" + zeile + "-" + spalte + "'"); // Ergibt z.B. "zelle5-2"
Denn Javascript ist es ja vollkommen egal, wie die Bilder oder sonstigen Elemente heißen - Hauptsache, es gibt überhaupt einen eindeutigen Namen.
- Sven Rautenberg
My sssignature, my preciousssss!