I have a few variables with colors that I want to change later. I want certain class to have background color from that variable. Every object with that class should be that color (nav, footer etc.). I have something like this, but it doesn’t work. Can you help?
// Set colors below: var nhcp1 = "red"; // Color 1 var nhcp2 = "blue"; // Color 2 var nhcp3 = "pink"; // Color 3 var nhcp4 = "green"; // Color 4 var nhcp5 = "violet"; // Color 5 var d = document; // Functions window.onload = function () { // Functions for Color 1 =============================== d.querySelector(".nhcp1").style.backgroundColor = nhcp1; // Functions for Color 2 =============================== d.querySelector(".nhcp2").style.backgroundColor = nhcp2; // Functions for Color 3 =============================== d.querySelector(".nhcp3").style.backgroundColor = nhcp3; // Functions for Color 4 =============================== d.querySelector(".nhcp4").style.backgroundColor = nhcp4; // Functions for Color 5 =============================== d.querySelector(".nhcp5").style.backgroundColor = nhcp5; };
Advertisement
Answer
in fact I didn’t see any problem, but you can also coding that this way
const d = document , colors = { nhcp1 : 'red' // Color 1 , nhcp2 : 'blue' // Color 2 , nhcp3 : 'pink' // Color 3 , nhcp4 : 'green' // Color 4 , nhcp5 : 'violet' // Color 5 } for (let color in colors ) d.querySelectorAll(`.${color}`) .forEach(el=>el.style.backgroundColor = colors[color])
<div class="nhcp1">bg 1</div> <div class="nhcp2">bg 2</div> <div class="nhcp3">bg 3</div> <div class="nhcp4">bg 4</div> <div class="nhcp5">bg 5</div> <div class="nhcp1">bg 1</div> <div class="nhcp2">bg 2</div> <div class="nhcp3">bg 3</div> <div class="nhcp4">bg 4</div> <div class="nhcp5">bg 5</div> <div class="nhcp1">bg 1</div> <div class="nhcp2">bg 2</div> <div class="nhcp3">bg 3</div> <div class="nhcp4">bg 4</div> <div class="nhcp5">bg 5</div>
, how can I modify it so for example class nhcp1txt will make text nhcp1 color (of course I want previous background color too, I want to add another class)?
this way :
const d = document , colors = [ { cls: 'nhcp1', cr: 'red', st:'backgroundColor' } , { cls: 'nhcp2', cr: 'blue', st:'backgroundColor' } , { cls: 'nhcp3', cr: 'pink', st:'backgroundColor' } , { cls: 'nhcp4', cr: 'green', st:'backgroundColor' } , { cls: 'nhcp5', cr: 'violet', st:'backgroundColor' } , { cls: 'nhcp1txt', cr: 'blue', st:'color' } , { cls: 'nhcp2txt', cr: 'yellow', st:'color' } ]; for (let {cls, cr, st} of colors ) d.querySelectorAll(`.${cls}`) .forEach( el=> el.style[st] = cr )
<div class="nhcp1 nhcp1txt">bg 1</div> <div class="nhcp2 nhcp2txt">bg 2</div> <div class="nhcp3">bg 3</div> <div class="nhcp4">bg 4</div> <div class="nhcp5">bg 5</div> <div class="nhcp1">bg 1</div> <div class="nhcp2">bg 2</div> <div class="nhcp3 nhcp1txt">bg 3</div> <div class="nhcp4">bg 4</div> <div class="nhcp5 nhcp2txt">bg 5</div>