• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Farbe eines Anchors ändern

T!P-TOP

Mitglied
HTML:
<a id="c1" href="javascript:changeConfigContent('configWebsite', this)" title="Konfiguration - Website">Website</a>

JavaScript Code
PHP:
document.getElementById(configLinkId).style.color = '#ffffff';
document.getElementById(configLinkId).style.backgroundColor = '#aaaaaa';

this wird als Parameter in changeConfigContent() entgegen genommen und in configLinkId gespeichert.

Es ändert sich weder die Farbe noch die Hintergrundfarbe. Ne Idee worans liegen könnte?

grüße
 
Wenn configLinkId die id des Elements enthalten soll, warum übergibst du dann this und nicht this.id?
 
Du kannst doch direkt mit dem zweiten Argument arbeiten und musst nicht document.getElementById verwenden.
 
Wenn configLinkId die id des Elements enthalten soll, warum übergibst du dann this und nicht this.id?
Gut gebracht hat das aber auch nichts.
Der Fehler liegt wohl im JavaScript Code, da ich was JavaScript angeht wenig Ahnung habe, wäre ich euch dankbar, wenn ihr den Code mal checken könntet:

PHP:
function changeConfigContent(configContentId, configLinkId) 
{
    allConfigContentIds = new Array('configWebsite', 'configAcpAllgemein', 'configStatistics', 'configOwnComponents');
    allConfigLinksIds = new Array('c1', 'c2', 'c3', 'c4');
    
    if (configContentId != '' && configLinkId != '') {
        // show choosen config container
        document.getElementById(configContentId).style.display = 'block';
        
        // display none for all other containers
        for (i = 0; i < 5; i++) {
            if (configContentId != allConfigContentIds[i]) {
                document.getElementById(allConfigContentIds[i]).style.display = 'none';                
            }
        }
            
        // actual link
        document.getElementById(configLinkId).style.color = '#ffffff';
        document.getElementById(configLinkId).style.backgroundColor = '#aaaaaa';
            
        // other links
        for (i = 0; i < 5; i++) {    
            if (configLinkId !=    allConfigLinksIds[i]) {    
                 document.getElementById(allConfigLinksIds[i]).style.color = '#000000';
                document.getElementById(allConfigLinksIds[i]).style.backgroundColor = '#dddddd';
            }
        }
    }
}
In der Fehlerkonsole wird bereits Zeile 13 als fehlerhaft gekennzeichnet:
[19:46:53.860] document.getElementById(allConfigContentIds) is null
 
Dieser Fehler erscheint, weil nicht alle contentIds gefunden wurden. (Überprüfe, ob du jeweils ein Element mit der id 'configWebsite', 'configAcpAllgemein' etc. hast)


Der Fehler, warum sich die Farbe dann nicht ändert, ist dass du das gesamte Element übergibst, und nicht dessen id.
 
Danke für die Hilfe, doch funktionieren will das nach wie vor nicht, erhalte von der Fehlerkonsole auch immer noch die selbe Fehlermeldung.

Edit: verwende nun übrigens auch this.id: <a id="c1" href="javascript:changeConfigContent('configWebsite', this.id)" title="Konfiguration - Website">Website</a>
 
Zurück
Oben