pixwiz: Javascript /CSS Zellenhintergrund nach Inhalt verändern

Beitrag lesen

Hallo Gemeinde,

ich bastle seit einiger Zeit an einer Kalkulationsanwendung, das was funktionieren soll, tut es auch, bis auf eine Sache, die ich irgendwie nicht gelöst bekomme. Das Prinzip ist mir mittlerweile zwar klar, aber anscheinend mache ich irgendwo den berühmten "Häckchenfehler"...

Das ganze Teil gibt es bereits schon als eigenständige Software, allerdings hab ich da andere Tools verwendet - auf jeden Fall kann ich damit aber meine Rechenwerte vergleichen und das ein oder andere konnte ich auch relativ schnell für Javascript ableiten. Wahrscheinlich noch verbesserungswürdig, aber für meine Zwecke soll es erstmal reichen.

Um was es geht: die berechneten Werte werden in einer Tabelle ausgegeben, das funktioniert soweit auch und auch dynamisch, d. h. ändert sich ein Wert, passen sich die Werte in der Tabelle auch an.
Dafür zuständig ist eine Funktion "auscal".
Für die Werteausgabe habe ich die Ergebnisse per innerHTML und entsprechender ID in die Zellen geschrieben, passt auch soweit.

Vielleicht erstmal die Funktion, die die Hintergrundfarbe abhängig vom Wert ändern soll:

<script>  
function HGF() {  
    var fsval = parseInt(document.getElementById('fsval').value);  
	var mwval = parseInt(document.getElementById('mwval').value);  
	var mp = (fsval * 2) + mwval;  
	var ip = document.getElementsByClassName('fd');  
    if (mp - ip < 0) {  
        document.getElementsByClassName('fd').style.backgroundColor = 'red';  
    }  
    else if (ip - mp < 0) {  
        document.getElementsByClassName('fd').style.backgroundColor = 'green';  
    }  
	else {  
		document.getElementsByClassName('fd').style.backgroundColor = 'blue';  
	}  
	test1.innerHTML = mp;  
	test2.innerHTML = ip;  
}  
</script>

Da ich den mp eigentlich ja schon an anderer Stelle ermittelt habe (aus fsval und mwval), ging ich davon aus, das es genügt, in dieser Funktion einfach die Werte nochmal aus dem Dokument zu holen.
Dann soll der Vergleich erfolgen, das Script soll also bei allen Klassen "fd" den Wert auslesen, mit der Variablen "mp" vergleichen - ist der Wert in der Tabelle größer, soll der Hintergrund Grün werden, ist der Wert in der Tabelle kleiner, entsprechend Rot. Falls identisch, soll der Zellenhintergrund Weiß bleiben.

Ich wäre für Hinweise, wo ich da den Denkfehler mache, sehr dankbar, muss auch beifügen, das ich schon seeeeeehr lange nicht mehr mit Javascript (auf Kreisklasseniveau) gearbeitet habe und da doch gewaltig Staub im Gebälk ist.

Der Style greift auf jeden Fall, das hab ich mit der Schrift getestet.

Ein weiterer Ansatz wäre vielleicht, die funktionierende Funktion in diese zu integrieren um dann Zugriff auf die Variablen zu haben...?
Oder einfach die Funktion - nach - der Tabelle aufrufen?
Steh leider ein bischen auf dem Schlauch und nehme Schubser in die richtige Richtung garantiert nicht übel ;)

So long!