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
var bgcolour; window.onload = function theme(){ document.body.style.backgroundColor = "red"; localStorage.setItem("bgcolour", 1); } function colours(){ localStorage.bgcolour = document.getElementById("party").value; if (localStorage.bgcolour == '1'){ document.body.style.backgroundColor = "red"; } }
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:
<select name="pnumber" id="party" onchange="colours()"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> <option value="13">13</option> <option value="14">14</option> <option value="15">15 (maximum)</option> </select>
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.
var bgcolour; window.onload = function theme(){ document.body.style.backgroundColor = "red"; localStorage.setItem("bgcolour", 1); } var party = document.getElementById('party') function colours(){ localStorage.setItem('bgcolour', party.value); if (localStorage.getItem('bgcolour') === '1'){ document.body.style.backgroundColor = "red"; } else{ document.body.style.backgroundColor = "green"; } }
<select name="pnumber" id="party" onchange="colours()"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> <option value="13">13</option> <option value="14">14</option> <option value="15">15 (maximum)</option> </select>