When I click on a button, the number isn't displayed on the current-output div. This is supposed to be a test if I hooked up the buttons right. Any possible fixes for this? Can it be the problem of using classes? I'm writing the code in vanilla JavaScript.
const numberButtons = Array.from(document.getElementsByClassName('number'));
const previousOutputText = Array.from(document.getElementsByClassName('previous-output'));
const currentOutputText = Array.from(document.getElementsByClassName('current-output'));
class Calculator {
constructor(previousOutputText, currentOutputText) {
this.previousOutputText = previousOutputText;
this.currentOutputText = currentOutputText;
}
addNumber(number) {
this.currentOutput = number;
}
updateDisplay() {
this.currentOutputText.innerHTML = this.currentOutput;
}
}
const calculator = new Calculator(previousOutputText, currentOutputText);
numberButtons.forEach(button => {
button.addEventListener('click', () => {
calculator.addNumber(button.innerHTML);
calculator.updateDisplay();
})
})
<div class="output">
<div data-previous-output class="previous-output"></div>
<div data-current-output class="current-output"></div>
</div>
<button class="span-two all-clear" data-all-clear>AC</button>
<button class="delete" data-delete>DEL</button>
<button class="operation" data-operation>/</button>
<button class="number" data-number>7</button>
<button class="number" data-number>8</button>
<button class="number" data-number>9</button>
<button class="operation" data-operation>*</button>
<button class="number" data-number>4</button>
<button class="number" data-number>5</button>
<button class="number" data-number>6</button>
<button class="operation" data-operation>-</button>
<button class="number" data-number>1</button>
<button class="number" data-number>2</button>
<button class="number" data-number>3</button>
<button class="operation" data-operation>+</button>
<button class="number" data-number>0</button>
<button class="number" data-number>.</button>
<button class="span-two equals" data-equals>=</button>