Akela: CSS-Klasse verändern

Hallo,

ich habe eine Tabelle, bei der ich Spalten ein und ausblenden möchte. Meine erste Lösung war, den untereinanderliegenden TD den gleichen Namen zu geben, daraus eine Liste zu ermitteln und dann jeder TD einen display:none zu verpassen. Macht der FF auch sehr schön. Jetzt habe ich aber mit Erschrecken festgestellt, daß im TD-tag name nicht erlaubt ist. ID ist erlaubt, ist aber leider eben nicht mehrfach einzusetzen.

Meine neue Idee:
Ich gebe den in einer Spalte liegenden TD diesselbe Klasse und ändere während der Laufzeit per Javascript einezelne Attribute innhalb der Klasse. geht das ? Falls ja, wie ?
Zum Verständnis: Ich möchte nicht die Klasse austauschen, sondern nur ein Attribut der Klasse, in der Hoffnung, daß sich dies auf die gesamte Seite auswirkt.

ciao Akela

  1. Hi Akela,

    Im Gegensatz zu id gibts in JS kein getElementsByClassName. Du kannst aber eine eigene Funktion in dein Script einbinden, die genau das macht.

    Hab ich länger nicht mehr benutzt, aber guck mal hier:

    http://www.netlobo.com/javascript_getelementsbyclassname.html

    oder hier:

    http://www.robertnyman.com/2005/11/07/the-ultimate-getelementsbyclassname/

    Peter-Paul Koch von Quirksmode ist allerdings der Meinung, dass es generell schneller und unter dem Gesichtspunkt der Trennung von Design und Funktionalität (also hier css u. JS) besser sei, ganze Klassennamen von Elementen zu ändern als auf einzelne style Attribute zuzugreifen. Guck hier:

    http://www.quirksmode.org/blog/archives/2005/07/benchmark_tests.html

    Gruß
    Antipitch

  2. Hallo!

    Jetzt habe ich aber mit Erschrecken festgestellt, daß im TD-tag name nicht erlaubt ist. ID ist erlaubt, ist aber leider eben nicht mehrfach einzusetzen.

    Du kannst aber die TD's mit DOM ansprechen. Dem Table-Tag gibst Du eine ID oder einen Namen und kannst somit nur die TD's dieser Tabelle durchlaufen.

    Zum Verständnis: Ich möchte nicht die Klasse austauschen, sondern nur ein Attribut der Klasse, in der Hoffnung, daß sich dies auf die gesamte Seite auswirkt.

    Du kannst in einer Klasse Attribute zu laufzeit wechseln. Suche dazu nach "CSS2Properties-Object" oder ähnliches.

    Aber es ist wesentlich einfacher, die Klassen anzulegen und nur die Klassennamen zu wechseln.

    André Laugks

    --
    Die Frau geht, die Hilti bleibt!