Farbänderung bei mouseover

Hallo mal wieder, ich habe schon wieder ein Problem. Beim Kramen im Internet bin ich auf einen Artikel gestoßen, der auch aus dem Forum hier stammt. Es geht um die Änderung der Farbe einer Tabellenzeile beim mouseover. So, wie das Skript hier aufgeschrieben ist, funktioniert das, nur ist die Zeile die bei mir die Farbe ändern soll in der Tabelle einer Tabelle, ich denke da liegt das Problem. Fehlermeldung ist „document.all.Tabelle.style ist null oder kein Objekt“. Ich weiß nicht, woran es liegt, wahrscheinlich wieder ein einziges Wort.

Tabellenfarbe ändern bei Mouseover
function changeColor(color) {
if (document.all)
document.all.Tabelle.style.backgroundColor = color;
else if (document.documentElement)
document.getElementById(„Tabelle“).style.backgroundColor = color;
}

Text

Das ist wie gesagt der Quelltext zur Demonstration der funktioniert, eingebaut aber nicht. Vielen Dank für die Hilfe.

steht im -tag, welches bei deiner anderen seite reagieren soll, auch id=„Tabelle“?

es sieht so aus, als ob es nämlich kein html-tag in deinem dokument gibt, welches diese id hat.

zumindest wäre das meiner meinung nach eine nicht unbedingt unwahrscheinliche möglichkeit.

gruss
ric

Ja, steht drin.

Ich gebe einfach mal eine Abwandlung an, wie es eingebaut ist.

index
function changeColor(color) {
if (document.all)
document.all.Tabelle.style.backgroundColor = color;
else if (document.documentElement)
document.getElementById(„Tabelle“).style.backgroundColor = color;
}

visuell
visuell
visuell
visuell
visuell
visuell
visuell
visuell

Ihr Browser kann leider keine eingebetteten Frames anzeigen: Sie können die eingebettete Seite über den folgenden Verweis aufrufen: Verzeichnis

Mir ist aufgefallen, dass es nicht geht, wenn man das auf mehrere Spalten bzw. Zellen beziehen will. Wahrscheinlich bin ich einfach nur stupide.

wenn man id’s vergibt, darf jede id im ganzen html-dokument nur einem einzigen html-tag zugewiesen werden! sonst kannst du so ein tag nicht mehr eindeutig per id mit javascript ansprechen.

für dein problem brauchst du aber auch gar nicht die id zu setzen.
du kannst in onmouseover bzw onmouseout folgendermassen direkt deine hintergrundfarbe setzen:

onmouseover="this.style.backgroundColor='farbe'"

eines deiner td-tags sähe dann so aus:

...

hier brauchst du gar keine zusätzliche funktion.
das geht mit ie ab version 5.0 und mit mozilla.

willst du das ganze lieber in einer funktion machen, weil du vielleicht noch mehr befehle benötigst, kannst du das auch machen, indem du das element gleich mitgibst. das sähe ungefähr so aus:

onmouseover="changeColor(this, 'yellow')"

und die dazu passende funktion wäre dann:

function changeColor(node, color)
{
 node.style.backgroundColor = color;
}

gruss
ric

Dankeschön. Kann man diese Idee eigentlich auch anders umsetzen, das so gut wie jeder Browser den Effekt umsetzt?