Director
Hallo,
ich habe vor kurzem angefangen mich mit Javascript zu beschäftigen und habe nun mein erstes eigenes Script geschrieben. Ich ändere damit das Farb-Schema meiner Website. Das ganze funktioniert auch ganz gut, allerdings denke ich, dass man es noch wesentlich verbessern könnte, indem man die Funktion allgemein gestaltet, um das Script auch in zukünftigen Projekten verwenden zu können.
Ich könnte aus dem unten stehenden Code 3 oder 4 allgemeine Funktionen machen, um jeden Fall abzudecken. Das hätte dann aber den Nachteil, dass ich um das Farbschema anzupassen, alle diese Funktionen aufrufen müsste, anstatt nur die Funktion changeColor().
Ich würde das Script also gerne so umschreiben, dass der Methode changeColor() entweder ein Class Name oder ein Tag Name übergeben wird. Dann müsste ja geprüft werden, was der Methode als Parameter übergeben wurde und davon ausgehend möchte ich dann in der Funktion weitere Abfragen machen im Stil von:
wenn class xy das BackgroundImage grau90.png hat, dann änder das bitte in weiß90.png
Oder equivalent mit der Schriftfarbe.
So, nun hab ich aber keine Ahnung, wie ich das zu Stande bringe. Aus Java ist mir das überladen von Methoden bekannt, mit dem man ja zumindest das Übergeben verschiedener Parametertypen an die Funktion lösen könnte (auch wenn es dann faktisch trotzdem mehrere Funktionen mit dem selben Namen wären), allerdings weiß ich nicht, ob sowas auch in Javascript geht.
Zweitens weiß ich nicht wie man oben genannte Abfrage für das Hintergrundbild, oder die Schriftfarbe, oder eine beliebige andere Eigenschaft im Code formuliert.
Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt und irgendjemand kann mir helfen! Ich bin mir ziemlich sicher, dass das Problem für Kenner ein Klacks ist, aber als Anfänger ...
Danke schonmal!
ich habe vor kurzem angefangen mich mit Javascript zu beschäftigen und habe nun mein erstes eigenes Script geschrieben. Ich ändere damit das Farb-Schema meiner Website. Das ganze funktioniert auch ganz gut, allerdings denke ich, dass man es noch wesentlich verbessern könnte, indem man die Funktion allgemein gestaltet, um das Script auch in zukünftigen Projekten verwenden zu können.
Ich könnte aus dem unten stehenden Code 3 oder 4 allgemeine Funktionen machen, um jeden Fall abzudecken. Das hätte dann aber den Nachteil, dass ich um das Farbschema anzupassen, alle diese Funktionen aufrufen müsste, anstatt nur die Funktion changeColor().
Ich würde das Script also gerne so umschreiben, dass der Methode changeColor() entweder ein Class Name oder ein Tag Name übergeben wird. Dann müsste ja geprüft werden, was der Methode als Parameter übergeben wurde und davon ausgehend möchte ich dann in der Funktion weitere Abfragen machen im Stil von:
wenn class xy das BackgroundImage grau90.png hat, dann änder das bitte in weiß90.png
Oder equivalent mit der Schriftfarbe.
So, nun hab ich aber keine Ahnung, wie ich das zu Stande bringe. Aus Java ist mir das überladen von Methoden bekannt, mit dem man ja zumindest das Übergeben verschiedener Parametertypen an die Funktion lösen könnte (auch wenn es dann faktisch trotzdem mehrere Funktionen mit dem selben Namen wären), allerdings weiß ich nicht, ob sowas auch in Javascript geht.
Zweitens weiß ich nicht wie man oben genannte Abfrage für das Hintergrundbild, oder die Schriftfarbe, oder eine beliebige andere Eigenschaft im Code formuliert.
Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt und irgendjemand kann mir helfen! Ich bin mir ziemlich sicher, dass das Problem für Kenner ein Klacks ist, aber als Anfänger ...
Danke schonmal!
Code:
<script type="text/javascript">
var change = 0;
function changeColor(){
if(change == 0){
for (var i = 0; i < document.getElementsByTagName("div").length; i++){
document.getElementsByTagName("div")[i].style.backgroundImage = "url('img/weiß90.png')";
}
for (var i = 0; i < document.getElementsByClassName("navigation").length; i++){
document.getElementsByClassName("navigation")[i].style.backgroundImage = "url('img/weiß90.png')";
}
for (var i = 0; i < document.getElementsByClassName("navLink").length; i++){
document.getElementsByClassName("navLink")[i].style.color = "#000";
}
for (var i = 0; i < document.getElementsByClassName("navLinkSub").length; i++){
document.getElementsByClassName("navLinkSub")[i].style.backgroundImage = "url('img/weiß90.png')";
document.getElementsByClassName("navLinkSub")[i].style.color = "#333";
}
for (var i = 0; i < document.getElementsByClassName("divider").length; i++){
document.getElementsByClassName("divider")[i].style.backgroundImage = "none";
}
for (var i = 0; i < document.getElementsByClassName("blogHeading").length; i++){
document.getElementsByClassName("blogHeading")[i].style.backgroundImage = "none";
}
for (var i = 0; i < document.getElementsByTagName("p").length; i++){
document.getElementsByTagName("p")[i].style.color = "#333";
}
for (var i = 0; i < document.getElementsByTagName("span").length; i++){
document.getElementsByTagName("span")[i].style.color = "#333";
}
for (var i = 0; i < document.getElementsByClassName("datumLarge").length; i++){
document.getElementsByClassName("datumLarge")[i].style.backgroundImage = "none";
}
for (var i = 0; i < document.getElementsByClassName("date").length; i++){
document.getElementsByClassName("date")[i].style.color = "#FFF";
}
change = 1;
}
else{
for (var i = 0; i < document.getElementsByTagName("div").length; i++){
document.getElementsByTagName("div")[i].style.backgroundImage = "url('img/grau90.png')";
}
for (var i = 0; i < document.getElementsByClassName("navigation").length; i++){
document.getElementsByClassName("navigation")[i].style.backgroundImage = "url('img/grau90.png')";
}
for (var i = 0; i < document.getElementsByClassName("navLink").length; i++){
document.getElementsByClassName("navLink")[i].style.color = "#FFF";
}
for (var i = 0; i < document.getElementsByClassName("navLinkSub").length; i++){
document.getElementsByClassName("navLinkSub")[i].style.backgroundImage = "url('img/grau90.png')";
document.getElementsByClassName("navLinkSub")[i].style.color = "#FFF";
}
for (var i = 0; i < document.getElementsByClassName("divider").length; i++){
document.getElementsByClassName("divider")[i].style.backgroundImage = "none";
}
for (var i = 0; i < document.getElementsByClassName("blogHeading").length; i++){
document.getElementsByClassName("blogHeading")[i].style.backgroundImage = "none";
}
for (var i = 0; i < document.getElementsByTagName("p").length; i++){
document.getElementsByTagName("p")[i].style.color = "#FFF";
}
for (var i = 0; i < document.getElementsByTagName("span").length; i++){
document.getElementsByTagName("span")[i].style.color = "#CCC";
}
for (var i = 0; i < document.getElementsByClassName("datumLarge").length; i++){
document.getElementsByClassName("datumLarge")[i].style.backgroundImage = "none";
}
for (var i = 0; i < document.getElementsByClassName("date").length; i++){
document.getElementsByClassName("date")[i].style.color = "#FFF";
}
change = 0;
}
}
</script>