Jonas Tampier: Nach dieser Funktion ist Sense ... warum ?

Hallo,
Wenn ich folgende Funktion ausführe, wird alles was ich danach ausführe ignoriert ... warum ?
Die Funktion macht sonst was sie soll, nämlich Tabellenzellen rot bzw. grün einfärben.
sv ist ein Array von input feldern und dient als Vergleichswert.

Danke im Vorraus
Jonas Tampier

function CheckKritisch(cspalte)
{
 var sg,reihe,zelle,spalten_anz,reihen_anz,wert;
 sg = document.getElementById("sqlgrid");
 reihen_anz = sg.firstChild.childNodes.length;
 for(var i=0;i<reihen_anz;i++)
 {
  reihe = sg.firstChild.childNodes[2 + i];
  zelle = reihe.childNodes[cspalte];
  spalten_anz = reihe.childNodes.length;
  wert = parseFloat(zelle.firstChild.firstChild.firstChild.nodeValue.replace(/,/,"."));
  if(wert>sv[cspalte].value)
   zelle.bgColor = "red";
  else
   zelle.bgColor = "green";
 }
}

CheckKritisch(0);
alert("warum bekomme ich diese meldung nicht ?");

  1. function CheckKritisch(cspalte)
    {
    var sg,reihe,zelle,spalten_anz,reihen_anz,wert;
    sg = document.getElementById("sqlgrid");
    reihen_anz = sg.firstChild.childNodes.length;
    for(var i=0;i<reihen_anz;i++)
    {
      reihe = sg.firstChild.childNodes[2 + i];
      zelle = reihe.childNodes[cspalte];
      spalten_anz = reihe.childNodes.length;
      wert = parseFloat(zelle.firstChild.firstChild.firstChild.nodeValue.replace(/,/,"."));
      if(wert>sv[cspalte].value)
       zelle.bgColor = "red";
      else
       zelle.bgColor = "green";
    }

    alert("warum bekomme ich diese meldung nicht ?");

    }

    (1) Der Aufruf war ausßerhalb Deiner Funktion. Er müsste eigentlich bei jedem Laden der Seite erfolgen...

    (2) sollte es nicht zelle.style.backgroundColor="green" heissen?

    (3a) Was sagt der Debugger in Mozilla (javascript:) in Adressleiste eingeben.
    (3b) Angezeigte Fehlermeldungen?

    fastix

    1. function CheckKritisch(cspalte)
      {
      var sg,reihe,zelle,spalten_anz,reihen_anz,wert;
      sg = document.getElementById("sqlgrid");
      reihen_anz = sg.firstChild.childNodes.length;
      for(var i=0;i<reihen_anz;i++)

      hier muss reihen_anz -2 hin, s.u.

      {
        reihe = sg.firstChild.childNodes[2 + i];

      denn ich addiere hier 2

      zelle = reihe.childNodes[cspalte];
        spalten_anz = reihe.childNodes.length;
        wert = parseFloat(zelle.firstChild.firstChild.firstChild.nodeValue.replace(/,/,"."));
        if(wert>sv[cspalte].value)
         zelle.bgColor = "red";
        else
         zelle.bgColor = "green";
      }
         alert("warum bekomme ich diese meldung nicht ?");
      }

      (1) Der Aufruf war ausßerhalb Deiner Funktion. Er müsste eigentlich bei jedem Laden der Seite erfolgen...

      so war es auch gedacht

      (2) sollte es nicht zelle.style.backgroundColor="green" heissen?

      nope ich benutze nicht document.all sondern HTML-Elementobjekte

      (3a) Was sagt der Debugger in Mozilla (javascript:) in Adressleiste eingeben.

      Mit Mozilla bin ich dem Fehler schnell auf die schliche gekommen. :)
       Danke

      1. Moin!

        zelle.bgColor = "green";
        (2) sollte es nicht zelle.style.backgroundColor="green" heissen?
         nope ich benutze nicht document.all sondern HTML-Elementobjekte

        Du benutzt das W3C-DOM. Da macht es doch Sinn, auch CSS zu verwenden und darüber zu formatieren. Also wie vorgeschlagen zelle.style.backgroundColor="green". Das hat mit document.all absolut nichts zu tun, sondern wird von jedem ordentlichen DOM-Browser verstanden.

        - Sven Rautenberg

        --
        "Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)
        1. Du benutzt das W3C-DOM. Da macht es doch Sinn, auch CSS zu verwenden und darüber zu formatieren. Also wie vorgeschlagen zelle.style.backgroundColor="green". Das hat mit document.all absolut nichts zu tun, sondern wird von jedem ordentlichen DOM-Browser verstanden.

          Stimmt da muss ich euch beiden Recht geben, und die Behauptung mit dem document.all war wohl ein Ausrutscher von mir, ich hatte wohl gerade noch andere Dinge im Kopf.

          Ich werde es gleich ändern.
          MsG
          Jonas Tampier