Utz: Style über getElementsByTagName zuweisen

Hi zusammen,

ein Billig-Provider stellt mir ein CGI-Skript zur Verwendung einer sog. Mini-Datenbank zur Verfügung, das ich gern nutze. Das Ergebnis des CGI-Skripts ist eine platte HTML-Tabelle, auf deren Aussehen ich keinen Einfluss habe (hab ja auch keinen Einfluss auf das Skript, weil Billig-Provider).

Damit das Datenbank-Ergebnis trotzdem einigermaßen wie der Rest aussieht, versuche ich, über DOM den Tabellenzellen CSS-Formatierungen zuzuweisen.

Meine Idee: ich füge als erste Zeile eine im Prinzip leere Tabellenzeile ein, die lediglich ein JavaScript enthält, das dafür sorgen soll, dass allen <td>-Tags eine CSS-Definition zugewiesen werden soll.

Mein augenblicklicher Code dafür ist:
document.getElementsByTagName('td').style.setAttribute('border','thin solid red','false');

Probiert hab ich auch schon (für IE):
document.all.getElementsByTagName('td').style.setAttribute('border','thin solid red','false');

Statt border hab ichs auch schon mit background-color und zur Sicherheit mit backgroundColor versucht.

Alles führt zu ner Fehlermeldung (Objekt kennt diese Eigenschaft oder Methode nicht). Allerdings kann ich mir über
alert(document.all.getElementsByTagName('td').length)
ne eingermaßen vernünftige Zahl ausgeben lassen.

Im Augenblick vermute ich, dass mein Ansatz deswegen scheitert, weil das erste <td>-Tag schon geschrieben ist, wenn das Skript aufgerufen wird (was sich leider nicht ändern lässt).

Wie gesagt: ein Aufruf des Skriptes ist frühestens aus der ersten Tabellenzeile möglich (oder alternativ über das Frameset, wobei ich nicht weiß, was das bringen sollte).

Geht mein Vorhaben überhaupt irgendwie? Falls ja wär's schön, wenn mich jemand in die richtige Richtung schubsen könnte.

Grüße,

Utz

  1. Hallo Utz!

    Ich hab das mal ausprobiert und es so hinbekommen:

    laenge = document.getElementsByTagName("TD").length
    for (i=0;i<laenge;i++)
     document.getElementsByTagName("TD").item(i).style.fontSize = "20px"

    Alles auf einmal ändern geht (meiner Meinung nach) nicht.
    Deshalb die Schleife.

    Ruf dieses Skript auf nachdem die Komplette Tabelle geschrieben wurde.
    Statt fontSize kannst du in deinem Fall einfach border nehmen.
    Hab´s im IE probiert - es funktioniert...

    Also bis dann und
    Viele Grüße!

    1. Hi Stampferl,

      Ich hab das mal ausprobiert und es so hinbekommen:

      laenge = document.getElementsByTagName("TD").length
      for (i=0;i<laenge;i++)
      document.getElementsByTagName("TD").item(i).style.fontSize = "20px"

      Thanks a lot - über Nacht fiel mir dann auch wieder ein, dass getElementsByTagName 'ne Collection ist, auf die man direkt keine Styles anwenden kann :-)

      Ruf dieses Skript auf nachdem die Komplette Tabelle geschrieben wurde.

      Das wird schwer - ich kann's ja nur innerhalb der Tabelle notieren. Ich werd mal testen was passiert wenn ich's in die letzte Tabellenzelle packe.

      Grüße,

      Utz