Warum funktioniert dieser code nicht?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Beta</title>
<script>
const bodyElement = document.querySelector("body");
function setColorBlue() {
bodyElement.background-color = "blue";
};
function setColorRed() {
bodyElement.background-color = "red";
};
function setColorGreen() {
bodyElement.background-color = "green";
}
</script>
</head>
<body>
<div class="color-picker">
<button onclick="setColorBlue()">Blue</button>
<button onclick="setColorRed()">Red</button>
<button onclick="setColorGreen()">Green</button>
</div>
</body>
</html>
3 Antworten
Welche Fehlermeldung kommt denn? Ich tipp mal darauf, dass body nicht gefunden werden kann, da es das an dieser Stelle vom Script noch gar nicht gibt.
Am einfachsten ist es, wenn du den ganzen Script-Block ans Ende und vor das schließenden </body> verschiebst:
<script>
…
</script>
</body>
Ein zweiter Fehler ist, dass es background-color in Javascript nicht gibt:
bodyElement.style.backgroundColor = "green";
Bitte mal in die Doku schauen:
https://www.w3schools.com/jsref/prop_style_backgroundcolor.asp
Du musst die Variable bodyElement aktualisieren, wenn du sie bearbeiten willst.
So z.b.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Beta</title>
<script>
function setColorBlue() {
bodyElement = document.querySelector("body");
bodyElement.style.backgroundColor = "blue";
}
function setColorRed() {
bodyElement = document.querySelector("body");
bodyElement.style.backgroundColor = "red";
}
function setColorGreen() {
bodyElement = document.querySelector("body");
bodyElement.style.backgroundColor = "green";
}
</script>
</head>
<body>
<div class="color-picker">
<button onclick="setColorBlue()">Blue</button>
<button onclick="setColorRed()">Red</button>
<button onclick="setColorGreen()">Green</button>
</div>
</body>
</html>
Versuchs mal damit:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Beta</title>
<script>
const bodyElement = document.querySelector("body");
function setColorBlue() {
bodyElement.style.backgroundColor = "blue";
}
function setColorRed() {
bodyElement.style.backgroundColor = "red";
}
function setColorGreen() {
bodyElement.style.backgroundColor = "green";
}
</script>
</head>
<body>
<div class="color-picker">
<button onclick="setColorBlue()">Blue</button>
<button onclick="setColorRed()">Red</button>
<button onclick="setColorGreen()">Green</button>
</div>
</body>
</html>
was funktioniert nicht? Was erwartest du, was passieren soll?
das sich die hintergrund farbe ändern lässt. hat sich jetzt aber erledigt.
document.querySelector("body")
… funktioniert im HEAD nicht, da im DOM das BODY-Element noch gar nicht existiert.