Id einer Tabellenzelle abfragen
Sigge
- javascript
Hallo,
in einer dynamisch erzeugten Tabelle soll durch "onclick" ein alert-fenster mit zusätzlichen Infos geöffnet werden.
tb=document.createElement("tbody");
document.getElementById('Tabelle').appendChild(tb);
var Zeile = document.createElement("tr");
Zeile.id = "Zeile"+i;
tb.appendChild(Zeile);
for(var y=0;y<7;y++){
//-->
switch (y){
case 0: usw.
case 3:
var eingwert = "Infos aufrufen";
var Zelle = document.createElement("td");
Zelle.onclick = function() {
-?-?-?-?--->>>>> alert (Text[i]);
}
Zelle.style.backgroundColor = "#CCCCCC";
break;
case 4: usw.
}
Zelle.id = "Zelle"+i+y;
var inhalt = document.createTextNode(eingwert);
Zelle.appendChild(inhalt);
document.getElementById("Zeile"+i).appendChild(Zelle);
Da die Tabelle mehrere Zeilen hat, wird der Wert i natürlich hoch addiert. Wie gelingt es mir die Zelle eindeutig zu erkennen um den zur Zeile gehörenden Text anzeigen zu können?
Die Zelle bekommt automatisch eine ID zugewiesen, kann man diese abfragen?
Sigge
Hallo Sigge,
Schau Dir mal den Artikel von Mathias Schäfer an - insbesondere: "Anwendung von Closures". Dort findest Du eine Möglichkeit, Eigenschaften vom Objekt auch im Event abzufragen (vgl. var thisObject = this;
und die dargestellte Anwendung).
Mit freundlichem Gruß
Micha
Hallo,
var eingwert = "Infos aufrufen";
var Zelle = document.createElement("td");
Werte als Eigenschaften am Elementobjekt speichern:
Zelle.i = i;
Zelle.onclick = function() {
-?-?-?-?--->>>>> alert (Text[i]);
}
Im Handler mit this auf das Element und dessen Eigenschaften zugreifen:
this.i
Da die Tabelle mehrere Zeilen hat, wird der Wert i natürlich hoch addiert.
Speichere ihn am besten am Element selbst, siehe oben.
Wie gelingt es mir die Zelle eindeutig zu erkennen um den zur Zeile gehörenden Text anzeigen zu können?
Du kannst auch gleich den Text am Element speichern... Was ist denn der Array Text?
Die Zelle bekommt automatisch eine ID zugewiesen, kann man diese abfragen?
Über this hast du auch Zugriff auf das Attribut id.
Auch interessant: https://forum.selfhtml.org/?t=165208&m=1077257 ff.
Mathias
Danke für Eure Hilfe,
ich bin ein gutes Stück voran gekommen!
Sigge