Hi, as you can see from the code, I have 3 counters, one for blue, one for red, and one for yellow. I want to optimize the js code and make it less redundant. I am also going to add more color counters as well so I’d like the code to be “scalable”. Is there a more efficient way to do this?
`<!DOCTYPE html>
<!–[if lt IE 7]> <html class=”no-js lt-ie9 lt-ie8 lt-ie7″> <![endif]–>
<!–[if IE 7]> <html class=”no-js lt-ie9 lt-ie8″> <![endif]–>
<!–[if IE 8]> <html class=”no-js lt-ie9″> <![endif]–>
<!–[if gt IE 8]><!–> <html class=”no-js”> <!–<![endif]–>
<head>
<meta charset=”utf-8″>
<meta http-equiv=”X-UA-Compatible” content=”IE=edge”>
<title></title>
<meta name=”description” content=””>
<meta name=”viewport” content=”width=device-width, initial-scale=1″>
<link rel=”stylesheet” href=””>
</head>
<body>
<!–[if lt IE 7]>
<p class=”browsehappy”>You are using an <strong>outdated</strong> browser. Please <a href=”#”>upgrade your browser</a> to improve your experience.</p>
<![endif]–>
<div>
<button id=”subtractBlue”>-</button>
<input type =”number” value=”0″ id=”inputBlue”>
<button id=”addBlue”>+</button>
<button id=”resetBlue”>R</button>
blue
</div>
<div>
<button id=”subtractRed”>-</button>
<input type =”number” value=”0″ id=”inputRed”>
<button id=”addRed”>+</button>
<button id=”resetRed”>R</button>
red
</div>
<div>
<button id=”subtractYellow”>-</button>
<input type =”number” value=”0″ id=”inputYellow”>
<button id=”addYellow”>+</button>
<button id=”resetYellow”>R</button>
yellow
</div>
<p></p>
<div>
Blue has
<input type=”number” id=”blueFinal”>
</div>
<div>
Red has
<input type=”number” id=”redFinal”>
</div>
<div>
Yellow has
<input type=”number” id=”yellowFinal”>
</div>
<script>
// blue
let btnAddBlue = document.querySelector(‘#addBlue’);
let btnSubtractBlue = document.querySelector(‘#subtractBlue’);
let btnResetBlue = document.querySelector(‘#resetBlue’);
let inputBlue = document.querySelector(‘#inputBlue’);
let blueFinal = document.querySelector(‘#blueFinal’);
btnAddBlue.addEventListener(‘click’, () => {
inputBlue.value = parseInt(inputBlue.value) + 1;
blueFinal.value = parseInt(inputBlue.value)
});
btnSubtractBlue.addEventListener(‘click’, () => {
inputBlue.value = parseInt(inputBlue.value) – 1;
blueFinal.value = parseInt(inputBlue.value)
});
btnResetBlue.addEventListener(‘click’, () => {
inputBlue.value = “0”;
blueFinal.value = parseInt(inputBlue.value)
});
// red
let btnAddRed = document.querySelector(‘#addRed’);
let btnSubtractRed = document.querySelector(‘#subtractRed’);
let btnResetRed = document.querySelector(‘#resetRed’);
let inputRed = document.querySelector(‘#inputRed’);
let redFinal = document.querySelector(‘#redFinal’);
btnAddRed.addEventListener(‘click’, () => {
inputRed.value = parseInt(inputRed.value) + 1;
redFinal.value = parseInt(inputRed.value)
});
btnSubtractRed.addEventListener(‘click’, () => {
inputRed.value = parseInt(inputRed.value) – 1;
redFinal.value = parseInt(inputRed.value)
});
btnResetRed.addEventListener(‘click’, () => {
inputRed.value = “0”;
redFinal.value = parseInt(inputRed.value)
});
// yellow Yellow
let btnAddYellow = document.querySelector(‘#addYellow’);
let btnSubtractYellow = document.querySelector(‘#subtractYellow’);
let btnResetYellow = document.querySelector(‘#resetYellow’);
let inputYellow = document.querySelector(‘#inputYellow’);
let yellowFinal = document.querySelector(‘#yellowFinal’);
btnAddYellow.addEventListener(‘click’, () => {
inputYellow.value = parseInt(inputYellow.value) + 1;
yellowFinal.value = parseInt(inputYellow.value)
});
btnSubtractYellow.addEventListener(‘click’, () => {
inputYellow.value = parseInt(inputYellow.value) – 1;
yellowFinal.value = parseInt(inputYellow.value)
});
btnResetYellow.addEventListener(‘click’, () => {
inputYellow.value = “0”;
yellowFinal.value = parseInt(inputYellow.value)
});
</script>
</body>
</html>`