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.
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;
}
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;
}