Aktuelles Datum hervorheben

  • Eventuell auch eine mögliche Fehlerquelle insbesondere bei "Websitebesuchern":

    Das aktuelle Datum per

    Code
    var today = new Date();

    kommt ja vom Browser(Computer). Ist dieser Computer auf dem aktuellen Datum eingestellt?

    Trotzdem dürfte aber t bzw t0 wohl nicht null sein.

    Ich bin aber bezüglich Javascript nur ein Laie und daher schon wieder weg.

  • Ich bin dem Fehler ein Stück näher gekommen...


    Um der Tabelle etwas mehr übersicht zu geben, habe ich jede zweite Zeile grau eingefärbt.


    Wenn nun das heutige Datum in einer grau hinterlegten Zeile liegt, wird der JS -Code nicht übernommen. Liegt das Datum in einer weiß unformatieren Zeile, dann schon.


    Das erklärt, warum es an einem Tag funktionierte, am nächsten Tag wieder nicht mehr.


    Ich habe dem JS schon ein !important mitgegeben, das bringt aber leider nichts.


    Als Workaround habe ich den o.g. CSS-Teil auskommentiert. Das macht die Tablle nur leider ziemlich unübersichtlich.


    Gibt es einen Weg beides zu verbinden?



    Viele Grüße

  • Zur Erklärung: jQuery(this) ist das aktuelle Element, also die Zelle in der das Datum steht. Das folgende .parent() verweist auf das Eltern-Element, also die Zeile. Das heißt, dass die Style-Angabe sich auf die Zeile bezieht. Das im CSS angegebene Background-color verweist auf die Zelle und überschreibt damit die der Zeile.


    Anstatt der Zeile direkt ein Style zu geben, weise der Zeile eine Klasse zu:

    JavaScript
    Statt:
    jQuery(this).parent().css("background-color", "#FAE533");
    Das setzen:
    jQuery(this).parent().addClass("today");

    Dann im CSS folgendes hinzufügen:

    CSS
    .today, table.visdatatable tr.today:nth-of-type(odd) td{
    background-color: #FAE533;
    }

    Wenn man die Lösung hat, dann muss man nur noch das passende Problem finden.

  • Ich breche zusammen... pardon


    In der Tabelle wird auch das Datum ausgegeben, an dem der Termin eingetragen ist. Ich hatte hier immer einige Felder nicht angegeben, da ich den Quelltext auf das wesentliche Reduzieren wollte.


    Nun werden auch alle die Termine gelb hinterlegt, die am aktuellen Tag eingetragen wurden. =O



    Der komplette Tabellenteil (ich schwöre :) ) für einen Datensatz sieht so aus:


    Die Teile "data-f12" usw. sind immer gleich, das ist die VisForms-interne Bezeichung des jeweiligen Input-Feldes.


    Das Script müsste eigentlich nicht nicht die komplette Zeile durchsuchen, sondern nur die Zelle mit der Klasse vfdvvalue data-f12.


    Das ansonsten funktionsfähige Script sieht aktuell bei mir so aus:


    Wenn ich nun die zweite Zeile stumpf in jQuery('table.visdatatable tr td.vfdvvalue data-f12').each(function(){ ändere, wird nichts mehr hervorgehoben, wäre ja auch zu einfach gewesen...


    Würde mir nocheinmal jemand auf die Sprüge helfen, was ich da ändern muss?



    Vielen Dank und viele Grüße

  • Dann brauchst Du nur die entsprechende Klasse in Zeile 2 hinzufügen. Wichtig ist nur, dass die Klasse wirklich immer gleich bleibt.


    JavaScript
    jQuery('table.visdatatable tr td.vfdvvalue.data-f12').each(function(){
    ...
    });

    Wenn man die Lösung hat, dann muss man nur noch das passende Problem finden.