I am trying to change the background colour of my website with local storage. I am using onchange()
within the HTML for the colours()
function, and the rest is the JavaScript below
JavaScript
x
17
17
1
var bgcolour;
2
3
window.onload = function theme(){
4
5
document.body.style.backgroundColor = "red";
6
localStorage.setItem("bgcolour", 1);
7
}
8
9
10
function colours(){
11
localStorage.bgcolour = document.getElementById("party").value;
12
13
if (localStorage.bgcolour == '1'){
14
document.body.style.backgroundColor = "red";
15
}
16
}
17
It does nothing. It doesn’t even change, let alone store it as local storage.
I keep missing vital, small parts of code and it feels like I have done it again with this one.
Any help is greatly appreciated!
HTML:
JavaScript
1
18
18
1
<select name="pnumber" id="party" onchange="colours()">
2
<option value="1">1</option>
3
<option value="2">2</option>
4
<option value="3">3</option>
5
<option value="4">4</option>
6
<option value="5">5</option>
7
<option value="6">6</option>
8
<option value="7">7</option>
9
<option value="8">8</option>
10
<option value="9">9</option>
11
<option value="10">10</option>
12
<option value="11">11</option>
13
<option value="12">12</option>
14
<option value="13">13</option>
15
<option value="14">14</option>
16
<option value="15">15 (maximum)</option>
17
</select>
18
Advertisement
Answer
the code is wrong, you are improperly setting and checking localStorage values. Also, you need to get the value from the node with id party.
JavaScript
1
20
20
1
var bgcolour;
2
3
window.onload = function theme(){
4
5
document.body.style.backgroundColor = "red";
6
localStorage.setItem("bgcolour", 1);
7
}
8
9
var party = document.getElementById('party')
10
function colours(){
11
12
localStorage.setItem('bgcolour', party.value);
13
14
if (localStorage.getItem('bgcolour') === '1'){
15
document.body.style.backgroundColor = "red";
16
}
17
else{
18
document.body.style.backgroundColor = "green";
19
}
20
}
JavaScript
1
17
17
1
<select name="pnumber" id="party" onchange="colours()">
2
<option value="1">1</option>
3
<option value="2">2</option>
4
<option value="3">3</option>
5
<option value="4">4</option>
6
<option value="5">5</option>
7
<option value="6">6</option>
8
<option value="7">7</option>
9
<option value="8">8</option>
10
<option value="9">9</option>
11
<option value="10">10</option>
12
<option value="11">11</option>
13
<option value="12">12</option>
14
<option value="13">13</option>
15
<option value="14">14</option>
16
<option value="15">15 (maximum)</option>
17
</select>