molily: Tabellenzeile ermitteln

Beitrag lesen

Hallo M.,

ich erstelle mit einem script eine Tabelle x- zeilen lang und 2 Spalten Breit. Die zweite spalte enthält immer den Text "Eigenschaft deakivieren".
BEi einem klick auf "Eigenschaft deakivieren" in der dritten Zeile, soll sich auch der Text in der dritten ändern, oder die Zeile ganz gelöscht werden.
Wie kann ich dies erreichen?

Du kannst jedem tr-Zeilenelement eine ID mit einer laufenden Nummer verpassen, welche du dann über beim Klick auf den Text in der zweiten Spalte ansprichst. Wenn du die Tabelle sowieso automatisch generierst, dürfte das einbringen eines Zählers kein Problem darstellen. Durch diese Zugriffsmöglichkeit kannst du den Textinhalt des Zellenelements ändern oder einfach die komplette Zeile verbergen. Ein Konzeptbeispiel über das DOM (d.h. ohne Rücksicht auf alte Browser):

function deaktivieren (nummer)  {
 document.getElementById('zeile'+nummer).style.display='none';
}
function aenderetext (nummer, text)  {
 document.getElementById('zeile'+nummer).firstChild.firstChild.data=text;
}

<table summary="...">
<caption>bla</caption>
<tr id="zeile1">
<td>eins</td>
<td><a href="javascript:deaktivieren(1);">Eigenschaft deaktivieren</a></td>
</tr>
<tr id="zeile2">
<td>zwei</td>
<td><a href="javascript:deaktivieren(2);">Eigenschaft deaktivieren</a></td>
</tr>
<!-- ... -->
<tr id="zeile5">
<td>fünf</td>
<td><a href="javascript:aenderetext(5, 'fünf geändert');">Eigenschaft deaktivieren</a></td>
</tr>
<tr id="zeile6">
<td>sechs</td>
<td><a href="javascript:aenderetext(6, 'sechs geändert');">Eigenschaft deaktivieren</a></td>
</tr>
</table>

Im öffentlichen Web ist der Einsatz natürlich insofern problematisch, dass JavaScript vorausgesetzt wird. Prinzipiell lässt sich ein solches Benutzerinterface auch serverseitig realisieren, aber ich weiß ja nicht, was du genau vorhast.

Grüße,
Mathias

--
»In anderen Newsgroups werden Pseudonyme akzeptiert, es handelt sich dabei meist um Gruppen, in denen sensible Themen (z.B. psychische oder peinliche Erkrankungen o.ä.) behandelt werden.«