EKKi: Tabellenzeile färben über JS-Funktion

Beitrag lesen

Mahlzeit Onkel Schnitzel,

ich möchte per JS gerne eine Tabellenzeile einfärben.

Nein, das möchtest Du nicht. Du möchtest per Javascript einer Tabellenzeile die Information verpassen, dass sie "in irgendeiner Form anders" ist als alle anderen.

Dies kannst Du erreichen, indem Du ihr z.B. eine Klasse namens "wichtig", "markiert" o.ä. verpasst.

Wie Tabellenzeilen mit dieser Klasse dann aussehen, definierst Du sinnvollerweise dort, wo Du auch das sonstige Aussehen aller Deiner Elemente beschreibst: im Stylesheet.

tr.markiert {  
  background-color: red;  
}

<tr onclick="[ref:self812;javascript/sprache/objekte.htm#this@title=this].[ref:self812;javascript/objekte/htmlelemente.htm#universaleigenschaften@title=className] = 'markiert';">

Dies als Anregung - alles weitere (z.B. das Wieder-wegnehmen der Klasse beim nächsten Klick usw.) überlasse ich dann mal Dir ...

Wenn ich das aber in eine Funktion auslagere, bekomm ich die Meldung 'style is not defined':

<script type="text/javascript">
function listeKlick () {
  style.backgroundColor = 'red';
}
</script>

Das ist kein Wunder ... schließlich existiert weder in Deiner Funktion noch global irgendein Objekt dieses Namens (wenn Du es nicht erstellt hast).

Im Scope eines HTML-Elements (wie z.B. einer Tabellenzeile) existiert aber ein entsprechend benanntes Unterobjekt des aktuellen Objekts. Deshalb funktioniert es direkt (ist aber weder schön noch sinnvoll) und nicht per Funktion.

MfG,
EKKi

--
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|