Torsten Zängel: Zellen von Tabellen hervorheben (aufgrund von Inhalt)

Hallo Forum-Teilnehmer,
ich möchte eine HTML-Tabelle mit einigen Formatierungen besser kenntlich machen:

Ist-Zustand: siehe http://www.ff-niedermuelsen.de, Punkt "Dienstplan"

  • Textfarbe:                     FFFFFF
  • Hintergrundfarbe:              FF0000
  • onMouseOver, Hintergrundfarbe: 0000FF
  • in einer Spalte ist ein Datum nach Format DD.MM.YYYY (Tabelle ist ein Dienstplan)

Soll-Zustand:

  • wenn aktuelles Datum größer als Datumswert in Tabelle, dann Textfarbe für Zeile: FF0000
  • wenn aktuelles Datum kleiner oder gleich dem Datumswert in Tabelle, dann Hintergrundfarbe für Zeile: 00FF00, aber nur die nächste Zeile

Ziel:

  • der aktuelle bzw. nächste Termin soll grün hervorgehoben werden, veraltete Termine sollen quasi verschwinden, ohne dass sie wirklich gelöscht werden
  • onMouseOver nicht mehr unbedingt erforderlich

Es wäre schön, wenn mir da jemand helfen könnte.
mfg,
Torsten

  1. Hi,

    Es wäre schön, wenn mir da jemand helfen könnte.

    Ich sehe aber keine konkrete Frage. =:-o

    Wert auslesen, Datum vergleichen, wenn alt: TR via parentNode ausblenden, wenn neu: TR via parentNode grün färben.

    Wo ist das Problem?

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
    1. Hi,
      ...
      Wo ist das Problem?

      Gruß, Cybaer

      Hallo Cybaer,
      das auslesen aus der Tabelle (wie spreche ich die Zelle an und wie kriege ich den Inhalt raus) und vergleichen mit dem aktuellen Datum stellt das Problem dar

      1. Hi,

        das auslesen aus der Tabelle (wie spreche ich die Zelle an und wie kriege ich den Inhalt raus) und vergleichen mit dem aktuellen Datum stellt das Problem dar

        *Das* ist doch schon mal konkret. :)

        Z.B. mit getElementsByTagName("tr") hast Du eine Collection aller Reihen - analog geht das mit den Zellen). Du kannst also in einer Schleife alle Reihen durchgehen, und darin dann gezielt z.B. die n. Zelle ansprechen. Um also die 4. Zelle der 1. Reihe auszulesen, lautet der Code:

        row1col4Inhalt=document.getElementsByTagName("tr")[0].getElementsByTagName("td")[3].innerHTML;

        Extrahier daraus (substring(), indexOf()) das Datum, wandel es um in einen Timestamp und vergleich es mit dem aktuellen Timestamp (date()).

        Und wenn alt: document.getElementsByTagName("tr")[0].style.display="none";
        Und wenn aktuell: document.getElementsByTagName("tr")[0].style.backgroundColor="green"

        Infos über die Benutzung s. Quickbar

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
        1. Hi,
          ...
          row1col4Inhalt=document.getElementsByTagName("tr")[0].getElementsByTagName("td")[3].innerHTML;

          Extrahier daraus (substring(), indexOf()) das Datum, wandel es um in einen Timestamp und vergleich es mit dem aktuellen Timestamp (date()).
          ...
          Gruß, Cybaer

          Hallo Cybaer,
          dank dir dafür. Jetzt muss ich nur noch wissen, wie man einen String in ein Timestamp umwandelt.

          mfg, Torsten

          1. Hallo,

            // Du erhälst ja (str) row1col4Inhalt  
            var d=row1col4Inhalt.[link:http://de.selfhtml.org/javascript/objekte/string.htm#split@title=split]('.')  
            var z=new [link:http://de.selfhtml.org/javascript/objekte/date.htm@title=Date]();  
            var t=new Date();  
              
            z.setDate(d[0]);  
            z.setMonth(d[1]);  
            z.setFullYear(d[2]);  
              
            if(z.getTime() < t.getTime()){  
               // blende aus  
            }
            

            Gruß aus Berlin!
            eddi

            1. Hi,

              z.setDate(d[0]);

              Vorsicht: Menschliche Datumsangaben fangen bei 1 an, die Tage & Monate der Date-Methoden zählen aber schon ab 0! =;-)

              Gruß, Cybaer

              --
              Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
              1. Hallo,

                z.setDate(d[0]);

                Vorsicht: Menschliche Datumsangaben fangen bei 1 an, die Tage & Monate der Date-Methoden zählen aber schon ab 0! =;-)

                ...Achten Sie darauf, dass Sie sinnvolle Werte zwischen 1 und 31 übergeben...

                Du immer mit Deinen dusligen Smilies :þ

                Gruß aus Berlin!
                eddi

                1. Hi,

                  ...Achten Sie darauf, dass Sie sinnvolle Werte zwischen 1 und 31 übergeben...

                  Oops, ja, habe setDate() mit setDay() verwechselt. =:-o

                  Aber: Du verwendest auch setMonth() - und da gilt das gleiche wie bei setDay(): Es beginnt bei 0! :)

                  War also trotzdem falsch. =;-)

                  Du immer mit Deinen dusligen Smilies :þ

                  Wie meinen? >;-o

                  Gruß, Cybaer

                  --
                  Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
                  1. Re:

                    War also trotzdem falsch. =;-)

                    Okay:

                    var d=row1col4Inhalt.split('.')  
                    var z=new Date();  
                    var t=new Date();  
                      
                    z.setDate(d[0]);  
                    z.setMonth(d[1]-1);  
                    z.setFullYear(d[2]);  
                      
                    if(z.getTime() < t.getTime()){  
                       // blende aus  
                    }
                    

                    Du immer mit Deinen dusligen Smilies :þ

                    Wie meinen? >;-o

                    Bügelfalten auf der Stirn sind nicht sehr attraktiv *g*

                    Gruß aus Berlin!
                    eddi

                    1. if(z.getTime() < t.getTime()){
                         // blende aus
                      ...
                      Gruß aus Berlin!
                      eddi

                      »»
                      Hallo Eddi,
                      ich habe jetzt das ganze mal versucht zu codieren.
                      Dabei tritt folgender Fehler auf:

                      Laufzeitfehler: 'document.getElementsByTagName(...)[...]' ist Null oder kein Objekt

                      Woran liegt das ???
                      Hier mal der Quellcode des Scripts:

                        
                      <script type="text/javascript">  
                      for(var i=0;i<25;i++)  
                        {     //laut Fehlermeldung geginnt der Fehler hier  
                         var Inhalt=document.getElementsByTagName("tr")[i].getElementsByTagName("td")[1].innerHTML;  
                              var datum_tabelle=Inhalt.split('.');  
                         var datum_wert_tabelle=new Date();  
                         var aktuelles_datum=new Date();  
                         datum_wert_tabelle.setDate(datum_tabelle[0]);  
                         datum_wert_tabelle.setMonth(datum_tabelle[1]-1);  
                         datum_wert_tabelle.setYear(datum_tabelle[2]);  
                         alert("Bis hier geht's");  
                        }  
                      </script>  
                      
                      

                      mfg, Torsten

                      1. Hallo,

                        zunächst einmal muß Deine for-Schleife bei 1 beginnen, da document.getElementsByTagName('tr')[0] folgenden Inhalt hat:

                          <td height=17 width=73 style='height:12.75pt;width:55pt'>  
                                    <p align="center"><b><u>Wochentag</u></b></td>  
                          <td width=71 style='width:53pt'>  
                                    <p align="center"><b><u>Datum</u></b></td>  
                          <td width=395 style='width:296pt'>  
                                    <p align="center"><b><u>Thema</u></b></td>  
                          
                          <td width=80 style='width:60pt'>  
                                    <p align="center"><b><u>Beginn</u></b></td>  
                          <td width=80 style='width:60pt'>  
                                    <p align="center"><b><u>Ende</u></b></td>
                        

                        Desweiteren ergibt document.getElementsByTagName("tr")[i].getElementsByTagName("td")[1].innerHTML '<p align="center">23.01.2006'. Also entferne also bitte das Element <p> und sorge dafür, daß keinerlei Leerraum innerhalb der Tabellenzelle ist.

                        Zur Fehlermeldung kann ich nichts sagen, da mein Mozilla an der JavaScriptkonsole nichts auszusetzen hat.

                        Gruß aus Berlin!
                        eddi

                        1. Hallo,

                          zunächst einmal muß Deine for-Schleife bei 1 beginnen, da document.getElementsByTagName('tr')[0] folgenden Inhalt hat:
                          ...

                          Nö, da die Zeile mit den Überschriften jetzt als "th" formatiert ist.

                          Desweiteren ergibt document.getElementsByTagName("tr")[i].getElementsByTagName("td")[1].innerHTML '<p align="center">23.01.2006'. Also entferne also bitte das Element <p> und sorge dafür, daß keinerlei Leerraum innerhalb der Tabellenzelle ist.

                          Hab ich gemacht. Du glaubst nicht, wie viele Leerräume bei so nem WYSIWYG-Programm auftauchen.

                          Zur Fehlermeldung kann ich nichts sagen, da mein Mozilla an der JavaScriptkonsole nichts auszusetzen hat.

                          Gruß aus Berlin!
                          eddi

                          Der Fehler besteht aber weiter.

                          mfg, Torsten

                          1. Hallo Torsten Zängel,

                            Der Fehler besteht aber weiter.

                            mir fallen 2 mögliche Fehler ein:

                            Du greifst auf eine Tabellenzeile zu, die kein TD enthält, sondern nur TH.

                            Dein Script steht im HEAD-Bereich oder im HTML vor der Tabelle und läuft daher, wenn es die Tabelle noch garnicht gibt. Stecke das Script in eine Funktion und rufe diese dann im body mit onload auf.

                            Gruß, Jürgen

                            1. Hallo Jürgen,

                              mir fallen 2 mögliche Fehler ein:

                              Du greifst auf eine Tabellenzeile zu, die kein TD enthält, sondern nur TH.

                              1. Deshalb greife ich ja auch direkt in die zweite Zeile, da die Schleife ja bei 1 und nicht bei 0 beginnt.

                              Dein Script steht im HEAD-Bereich oder im HTML vor der Tabelle und läuft daher, wenn es die Tabelle noch garnicht gibt. Stecke das Script in eine Funktion und rufe diese dann im body mit onload auf.

                              2. Ich habe jetzt ein paar Veränderungen durchgeführt, die u.a. das Script erst fahren, wenn ich einen Textlink betätige. Der Fehler bleibt aber bestehen. Meiner Meinung nach liegt der Fehler in der Eigenschaft ".innerHTML", denn sobald ich die weglasse, ist es kein Laufzeitfehler mehr, sondern ein "undefined"-Fehler

                              Gruß, Jürgen

                              mfg, Torsten

                      2. Hi,

                        Laufzeitfehler: 'document.getElementsByTagName(...)[...]' ist Null oder kein Objekt

                        Du kannst (und solltest!) jedesmal vor dem Zugriff abfragen, ob es überhaupt etwas abzufragen gibt.

                        Also z.B.:

                        trData=document.getElementsByTagName("tr")[i];
                        if(trData.getElementsByTagName("td") && trData.getElementsByTagName("td").length>=2) {
                         // Zugriff auf die Reihe möglich, da sie mindestens 2 TDs enthält
                        }

                        for(var i=0;i<25;i++)

                        Ach hier kann man mit length arbeiten: i<document.getElementsByTagName("tr").length

                        Gruß, Cybaer

                        --
                        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
                        1. Hi,

                          Laufzeitfehler: 'document.getElementsByTagName(...)[...]' ist Null oder kein Objekt

                          Du kannst (und solltest!) jedesmal vor dem Zugriff abfragen, ob es überhaupt etwas abzufragen gibt.

                          Also z.B.:

                          trData=document.getElementsByTagName("tr")[i];
                          if(trData.getElementsByTagName("td") && trData.getElementsByTagName("td").length>=2) {
                          // Zugriff auf die Reihe möglich, da sie mindestens 2 TDs enthält
                          }

                          for(var i=0;i<25;i++)

                          Ach hier kann man mit length arbeiten: i<document.getElementsByTagName("tr").length

                          Gruß, Cybaer

                          Danke Cybaer,
                          aber das Problem scheint ganz wo anders zu liegen.
                          Ich habe jetzt den Zeilen und Spalten Namen vergeben (name-Objekt) und greife mit "getElementsByName("Datum")[i]" die Datumsspalte direkt an. Es scheint zu funktionieren, wenn ich die Eigenschaft "innerHTML" weglasse. Dann kommt nämlich kein Laufzeitfehler mehr, sondern, dass das Objekt nicht definiert sei. Die Offline-Version von SELFHTML sagt dazu, dass der IE einen Laufzeitfehler bringt, wenn direkt beim Seitenaufbau das Script durchlaufen wird. Deshalb habe ich jetzt eine Funktion mit Link-Aufruf draus gemacht, aber sobald ich ".innerHTML" drin stehen habe bringt er wieder den Laufzeitfehler, dann halt erst, wenn ich die Funktion auslöse.

                          mfg, Torsten

                          1. Hi,

                            Ich habe jetzt den Zeilen und Spalten Namen vergeben (name-Objekt) und greife mit "getElementsByName("Datum")[i]" die Datumsspalte direkt an.

                            Da TRs und TDs gar kein NAME-Attribut haben dürfen, kannst Du auch die Abfrage von selbigem gleich wieder vergessen. Nimm ID für den Direktzugriff, oder eine sonstige Kennung, die dann wieder in einer Schleife abzufragen ist.

                            Gruß, Cybaer

                            --
                            Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
                            1. Hi,

                              Hi,
                              Nimm ID für den Direktzugriff, oder eine sonstige Kennung, die dann wieder in einer Schleife abzufragen ist.

                              Hab ich getan, der Fehler bleibt, wo er ist -> in der innerHTML-Eigenschaft

                              Gruß, Cybaer

                              mfg, Torsten

                              1. Hi,

                                Nimm ID für den Direktzugriff, oder eine sonstige Kennung, die dann wieder in einer Schleife abzufragen ist.
                                Hab ich getan, der Fehler bleibt, wo er ist -> in der innerHTML-Eigenschaft

                                Da diese also solche keinen Fehler haben kann, wird er wohl woanders liegen. ;)

                                Was sagt die JavaScript-Konsole von Mozilla?

                                Gruß, Cybaer

                                --
                                Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
                                1. Hi,

                                  Nimm ID für den Direktzugriff, oder eine sonstige Kennung, die dann wieder in einer Schleife abzufragen ist.
                                  Hab ich getan, der Fehler bleibt, wo er ist -> in der innerHTML-Eigenschaft

                                  Da diese also solche keinen Fehler haben kann, wird er wohl woanders liegen. ;)

                                  Was sagt die JavaScript-Konsole von Mozilla?

                                  Gruß, Cybaer

                                  Sorry, ich nutze den IE. Der sagt, dass da, wenn "innerHTML" drinsteht, ein Laufzeit-, sonst ein undefined-Fehler besteht.

                                  mfg, Torsten

                                  1. Hi,

                                    Sorry, ich nutze den IE. Der sagt, dass da, wenn "innerHTML" drinsteht, ein Laufzeit-, sonst ein undefined-Fehler besteht.

                                    Was deer sagt, ist reichlich dürftig. Deswegen der Hinweis auf Mozilla.

                                    Zumal ohne gezeigten Code, ist das sonst genauso, als wenn ein Blinder im Nebel umherstolpert ...

                                    Gruß, Cybaer

                                    --
                                    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
                                    1. Hi,

                                      Sorry, ich nutze den IE. Der sagt, dass da, wenn "innerHTML" drinsteht, ein Laufzeit-, sonst ein undefined-Fehler besteht.

                                      Was deer sagt, ist reichlich dürftig. Deswegen der Hinweis auf Mozilla.

                                      Zumal ohne gezeigten Code, ist das sonst genauso, als wenn ein Blinder im Nebel umherstolpert ...

                                      Gruß, Cybaer

                                      Sorry,
                                      ich wollte den ganzen Quelltext mal posten, das Forum macht aber net mit.
                                      Schätze, ich werde den Quelltext mal auf meine HP hochladen und zum DL anbieten müssen.

                                      So, hier ist er: http://www.torsten-zaengel.de/progs/dienstplan1.zip
                                      mfg,
                                      Torsten

                                    2. Hallo.

                                      Zumal ohne gezeigten Code, ist das sonst genauso, als wenn ein Blinder im Nebel umherstolpert ...

                                      ... der dann ebenso viel sieht wie ein Blinder bei klarem Himmel oder ein Normalsichtiger im Nebel?
                                      MfG, at

                                2. Hi,
                                  ...
                                  Da diese also solche keinen Fehler haben kann, wird er wohl woanders liegen. ;)

                                  Gruß, Cybaer

                                  »»
                                  Hallo Cybaer,

                                  der Fehler liegt irgendwo hier (der Rest ist im Moment auskommentiert)

                                    
                                  alert(document.getElementById("Datum")[i].innerHTML);  
                                  
                                  

                                  Wenn ich ".innerHTML" weglasse, ist "document.getElementById("Datum")[i]" undefined, wenn ich es ranschreibe, kommt der Laufzeitfehler

                                  mfg, Torsten

                                  1. Hi,

                                    alert(document.getElementById("Datum")[i].innerHTML);

                                      
                                    Da ids dokumentweit eindeutig sein müssen, liefert getElementById nie mehr als 1 Element, niemals eine Collection. Einen Index darauf anzuwenden,ist also sinnlos.  
                                      
                                    cu,  
                                    Andreas
                                    
                                    -- 
                                    [Warum nennt sich Andreas hier MudGuard?](http://www.Mud-Guard.de/)  
                                    [Schreinerei Waechter](http://www.schreinerei-waechter.de/)  
                                    [O o ostern ...](http://ostereier.andreas-waechter.de/)  
                                    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.  
                                    
                                    
                                    1. Hi,

                                      alert(document.getElementById("Datum")[i].innerHTML);

                                      
                                      >   
                                      > Da ids dokumentweit eindeutig sein müssen, liefert getElementById nie mehr als 1 Element, niemals eine Collection. Einen Index darauf anzuwenden,ist also sinnlos.  
                                      >   
                                      > cu,  
                                      > Andreas  
                                        
                                      ES GEHT, ES GEHT, ES GEHT, ES GEHT, ES GEHT, ES GEHT, ES GEHT  
                                        
                                      Ich weiss jetzt nicht genau, was ich gemacht habe, aber es funzt jetzt. Hier nochmal die Funktion zum Nachmeiseln:  
                                        
                                      function dpaktuell()  
                                      {  
                                      for(var i=1;i<document.getElementsByTagName("tr").length;i++)  
                                        {  
                                         trData=document.getElementsByTagName("tr")[i];  
                                              if(trData.getElementsByTagName("td") && trData.getElementsByTagName("td").length>=2)  
                                       {  
                                              var Inhalt=document.getElementsByTagName("tr")[i].getElementsByTagName("td")[1].innerHTML;  
                                              var d=Inhalt.split('.');  
                                         var z=new Date(d[2], d[1]-1, d[0]);  
                                         var t=new Date();  
                                         if(z < t)  
                                        {  
                                        document.getElementsByTagName("tr")[i].style.display="none";  
                                        }  
                                       else  
                                        {  
                                        document.getElementsByTagName("tr")[i].style.textcolor="black";  
                                        document.getElementsByTagName("tr")[i].style.backgroundColor="lightgreen";  
                                        }  
                                       }  
                                        }  
                                      }  
                                        
                                      Vielen Dank an alle, die mir geholfen haben.  
                                        
                                      mfg, Torsten
                                      
                    2. Hi,

                      Okay:

                      var d=row1col4Inhalt.split('.')

                      var z=new Date();
                      var t=new Date();

                      z.setDate(d[0]);
                      z.setMonth(d[1]-1);
                      z.setFullYear(d[2]);

                        
                      Daß das nicht ganz stimmt, ist Dir aber hoffentlich klar ...  
                        
                      Führe den Code heute aus mit dem Eingabestring "31.07.2006" und laß Dir am Ende das Datum ausgeben.  
                      Es kommt nicht der 31. Juli raus, sondern der 1. Juli.  
                        
                      Warum?  
                      Ganz einfach:  
                        
                      
                      > var z=new Date();  
                        
                      Das Datum ist jetzt der 11. April 2006  
                        
                      
                      > z.setDate(d[0]);  
                        
                      Der Tag wird auf 31 gesetzt, also 31. April 2006. Gibt es nicht, der April hat ja nur 30 Tage, es kommt zum Überlauf, Javascript macht den 1. Mai draus.  
                        
                      
                      > z.setMonth(d[1]-1);  
                        
                      Jetzt wird der Monat auf 6 (also Juli) gesetzt.  
                        
                      z ist jetzt also der 1. Juli 2006  
                        
                      Ähnlicher Effekt kann dann auch noch mit dem Jahr auftreten, wenn z.B. der 29. Februar betroffen ist.  
                        
                      Besser:  
                      z = new Date(d[2], d[1]-1, d[0]);  
                      Hier werden die Werte gleichzeitig in ein neues Date-Object eingesetzt.  
                        
                      cu,  
                      Andreas
                      
                      -- 
                      [Warum nennt sich Andreas hier MudGuard?](http://www.Mud-Guard.de/)  
                      [Schreinerei Waechter](http://www.schreinerei-waechter.de/)  
                      [O o ostern ...](http://ostereier.andreas-waechter.de/)  
                      Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.  
                      
                      
                      1. Hi,

                        Daß das nicht ganz stimmt, ist Dir aber hoffentlich klar ...
                        ...
                        Besser:
                        z = new Date(d[2], d[1]-1, d[0]);

                        cu,
                        Andreas

                        Danke, Andreas

                    3. Hi,

                      Bügelfalten auf der Stirn sind nicht sehr attraktiv *g*

                      Das relativiert sich mit dem Alter! >;->

                      Gruß, Cy-"ich bevorzuge 'Lachfältchen'"-baer ;)

                      --
                      Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
                      1. Hallo.

                        Bügelfalten auf der Stirn sind nicht sehr attraktiv *g*

                        Das relativiert sich mit dem Alter! >;->

                        Aber erst ab einer bügeleisensohlengroßen Stirn.
                        MfG, at

          2. Hi,

            dank dir dafür. Jetzt muss ich nur noch wissen, wie man einen String in ein Timestamp umwandelt.

            Neben eddis Variante (dabei muß der Inhalt z.B. "30.6.2006" sein - bei Tagen & Monaten muß dann noch 1 abgezogen werden): Beo den Methoden von Date() findest Du auch das schöne parse()! Damit kannst Du einen Datumsstring zusammenbasteln und umwandeln.

            Gruß, Cybaer

            --
            Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
        2. Hallo Cybaer.

          Z.B. mit getElementsByTagName("tr") hast Du eine Collection aller Reihen - analog geht das mit den Zellen).

          Die armen rows und cells fühlen sich richtig vernachlässigt …

          Einen schönen Dienstag noch.

          Gruß, Ashura

          --
          sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
          „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
          [HTML Design Constraints: Logical Markup]
          1. Hi,

            Die armen rows und cells fühlen sich richtig vernachlässigt …

            Ich weiß - bin aber keine Ersatzmutter! ;)

            Gruß, Cybaer

            --
            Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
  2. Hallo,

    woraus generiert sich die Tabelle:

    • Handeingabe oder
    • Script (welches)

    bydey

    --
    -- bydey ist die Signatur und Verabschiedung, nicht der Nick --
    -- Navigate all your PHP web projects with  PHP Project Browser--
    1. Hi,

      woraus generiert sich die Tabelle:

      • Handeingabe oder
      • Script (welches)

      Wenn man das mit JavaScript lösen möchte (was ich durchaus auch als nicht unsinnig erachte), spielt das allerdings überhaupt keine Rolle. =:-)

      Gruß, Cybaer

      --
      Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
      1. Hallo,

        Wenn man das mit JavaScript lösen möchte (was ich durchaus auch als nicht unsinnig erachte), spielt das allerdings überhaupt keine Rolle. =:-)

        Vielleicht war JS aber auch die erste, aber nicht beste Lösung!?
        Z.B. PHP:

        • Werte vergleichen
        • und bei echo "<td>....." gleich eine entsprechende Klasse mitgeben

        Wäre für mich (zumindest) vom Ansatz her einfacher, als deine Lösung. Was alllerdings an meiner persönlichen JS-inkompatibilität liegt.

        bydey

        --
        -- bydey ist die Signatur und Verabschiedung, nicht der Nick --
        -- Navigate all your PHP web projects with  PHP Project Browser--
        1. Hallo,
          Vielleicht war JS aber auch die erste, aber nicht beste Lösung!?
          Z.B. PHP:

          • Werte vergleichen
          • und bei echo "<td>....." gleich eine entsprechende Klasse mitgeben
            ...
            bydey

          Hallo Dey,
          PHP wird von meinem Hoster in meinem aktuellen Paket nicht unterstützt.

          mfg, Torsten

    2. Hallo,

      woraus generiert sich die Tabelle:

      • Handeingabe oder
      • Script (welches)

      bydey

      Hallo bydey,
      das ist eine handgenerierte Tabelle

      mfg, Torsten

  3. Hallo Forum-Teilnehmer,
    ich möchte eine HTML-Tabelle mit einigen Formatierungen besser kenntlich machen:
    ...

    Es wäre schön, wenn mir da jemand helfen könnte.
    mfg,
    Torsten

    ES GEHT, ES GEHT, ES GEHT, ES GEHT, ES GEHT, ES GEHT, ES GEHT

    Ich weiss jetzt nicht genau, was ich gemacht habe, aber es funzt jetzt. Hier nochmal die Funktion zum Nachmeiseln:

    function dpaktuell()
    {
    for(var i=1;i<document.getElementsByTagName("tr").length;i++)
      {
       trData=document.getElementsByTagName("tr")[i];
            if(trData.getElementsByTagName("td") && trData.getElementsByTagName("td").length>=2)
     {
            var Inhalt=document.getElementsByTagName("tr")[i].getElementsByTagName("td")[1].innerHTML;
            var d=Inhalt.split('.');
       var z=new Date(d[2], d[1]-1, d[0]);
       var t=new Date();
       if(z < t)
      {
      document.getElementsByTagName("tr")[i].style.display="none";
      }
     else
      {
      document.getElementsByTagName("tr")[i].style.textcolor="black";
      document.getElementsByTagName("tr")[i].style.backgroundColor="lightgreen";
      }
     }
      }
    }

    Vielen Dank an alle, die mir geholfen haben.

    mfg, Torsten

    1. Hi,

      Ich weiss jetzt nicht genau, was ich gemacht habe, aber es funzt jetzt. Hier nochmal die Funktion zum Nachmeiseln:

      BTW: Nach der Zeile

      trData=document.getElementsByTagName("tr")[i];

      kannst/solltest Du alle nachfolgenden document.getElementsByTagName("tr")[i] durch trData ersetzen - das ist dann vielleicht übersichtlicher. Also z.B.

      var Inhalt=trData.getElementsByTagName("td")[1].innerHTML;

      oder

      trData.style.display="none";

      etc.

      Gruß, Cybaer

      --
      Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!