Gunnar Bittersmann: Tabellenzeile mit Javaskript farblich hervorheben

Beitrag lesen

@@Heinrich Krebs:

function Farbwechsel(id)
{
id.className = "hinterlegt";
}

Dies sollte ja dann die Klassennamen ändern, wenn man sie mit der ID der entsprechenden Zeile aufruft, oder nicht ?

Nein.

Wenn du als 'id' den Zeiger aud das Elementobjekt übergibst, dann ja (d.h. Aufruf mit 'Farbwechsel(document.getElementById("foo"));'; evtl. auch  mit 'Farbwechsel(this);').

Vermutlich wolltest du die Funktion aber so implementieren:

function Farbwechsel(id)  
{  
  document.getElementById(id).className = "hinterlegt";  
}

function FarbeReturn(klasse)
{
id.className = "nix";
}

'klasse'??

Statt "nix" darf es auch "" sein.

Beide Funktionen lassen sich besser zu einer zusammenfassen.

Eine Benennung sollte nicht an der gegenwärtig gewünschten Darstellung orientieren, sondern nach der Funktion. Und in JavaScript werden Namen von Funktionen (Methoden, Eigenschaften) üblicherweise mit kleinem Anfangsbuchstaben geschrieben.

function hinterlegen(id, flag)  
{  
  if (flag)  
    document.getElementById(id).className = "hinterlegt";  
  else  
    document.getElementById(id).className = "";  
}

was sich einfacher so schreiben lässt:

function hinterlegen(id, flag)  
{  
  document.getElementById(id).className = flag ? "hinterlegt" : "";  
}

Aufruf mit 'hinterlegen("foo", true)' bzw. 'hinterlegen("foo", false)'.

Falls es überhaupt sinnvoll ist, dafür eine Funktion zu haben. Die Anweisung zum ändern der Klasse könnte ja auch direkt beim Event-Handler stehen.

Live long and prosper,
Gunnar

--
„Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)