Hallo,
verstehe zwar überhaupt nicht, wieso das dann die hover-farbe nicht ändert,
Das ist so unlogisch nicht;-)). Die CSS-Information, dass ein A-Element eine bestimmte Farbe a {color:black} haben soll und bei :hover eine andere, muss der Browser ja irgendwo speichern. Mit JavaScript element.style.color="black"; greifst Du nun auf den selben Speicherbereich zu und überschreibst die gespeicherte Farbe. Da JavaScript aber nur _eine_ Farbe für style.color je Element setzen kann, überschreibst Du damit auch den :hover-Wert. Das Setzen der Farbe auf einen Leerstring setzt _keinen_ Wert für style.color und überschreibt so auch nichts. Das erklärt auch das Verhalten der Geckos bei element.style.color="inherit";. Warum allerdings element.style.color=null; nicht den selben Effekt hat, wie element.style.color="";, muss ich noch herausfinden.
viele Grüße
Axel