Javascript - 帮助更新我的计算器显示以显示按下的按钮数

Javascript - Help to update the display of my calculator to display the number of the button pressed

我正在使用 HTML、CSS 和 Javascript 作为一个项目构建一个计算器。我几乎设置了 HTML 和 CSS - 我在编码 javascript 时遇到问题,以便我可以与 HTML 元素交互。我将事件侦听器添加到我的数字按钮 - 单击时我希望它们更新显示屏上的文本。经过一段时间的研究后,我不太清楚这样做的正确方法。

我尝试了通过按钮上的 eventListeners 更新显示的变体,无论按下哪个数字 display.textContent = button.innerText。但这不会更新显示屏上的整数。在正确方向上的任何帮助都会有所帮助!谢谢!

下面是HTML,下面是javascript。

<body>
    <div class = 'calculator-grid'>
        <div class = 'output'>
            <div class = 'previous-operand'></div>
            <div data-display class = 'display'></div>
        </div>
        <button data-all-clear class = 'span-two grey-button'>AC</button>
        <button data-delete class = 'grey-button'>DEL</button>
        <button data-operator class = 'orange-button'>÷</button>
        <button data-number >7</button>
        <button data-number>8</button>
        <button data-number>9</button>
        <button data-operator class = 'orange-button'>*</button>
        <button data-number>4</button>
        <button data-number>5</button>
        <button data-number>6</button>
        <button data-operator class = 'orange-button'>+</button>
        <button data-number>1</button>
        <button data-number>2</button>
        <button data-number>3</button>
        <button data-operator class = 'orange-button'>-</button>
        <button data-number class = 'span-two'>0</button>
        <button data-number>.</button>
        <button data-equals class = 'orange-button'>=</button>
    </div>
const operatorButtons = document.querySelectorAll('[data-operator]');
const clearButton = document.querySelector('[data-all-clear]');
const deleteButton = document.querySelector('[data-delete]');
const equalButton = document.querySelector('[data-equals]');
const display = document.querySelector('[data-display]');

function updateDisplay() {

}

function clear() {
    display.textContent = '';
}

clearButton.addEventListener('click', () => {
    clear();
})


numberButtons.forEach(button => button.addEventListener('click',() => {
    let buttonContent = button.innerText;
    display.textContent = buttonContent;
}))

这是我的计算函数,我将根据我按下的数字调用它。

function add(a, b) {
    return a + b;
}

function subtract(a, b) {
    return a - b;
}

function multiply(a , b) {
    return a * b;
}

function divide(a, b) {
    return a / b;
}

function operate(firstNum, secondNum, operator) {
    let result = 0;
    let operationResult;
    switch (operator) {
        case '+':
            operationResult = add(firstNum, secondNum);
            result += operationResult;
            break;
        case '-': 
            operationResult = subtract(firstNum, secondNum);
            result += operationResult;
            break;
        case '*':
            operationResult = multiply(firstNum, secondNum);
            result += operationResult;
            break;
        case '÷':
            operationResult = divide(firstNum, secondNum);
            result += operationResult;
            break;
    }
    return result;
}

您可能忘记定义 numberButtons 了吗?

您的代码显示 numberButtons 尚未定义,在 querySelectorAll 数字按钮并将它们定义为 numberButton 之后,您的代码应该可以工作。请参阅我的代码片段。

const operatorButtons = document.querySelectorAll('[data-operator]');
const clearButton = document.querySelector('[data-all-clear]');
const deleteButton = document.querySelector('[data-delete]');
const equalButton = document.querySelector('[data-equals]');
const display = document.querySelector('[data-display]');
const numberButtons = document.querySelectorAll('[data-number]')

function updateDisplay() {

}

function clear() {
    display.textContent = '';
}

clearButton.addEventListener('click', () => {
    clear();
})




numberButtons.forEach(button => button.addEventListener('click',() => {
    let buttonContent = button.innerText;
    display.textContent = buttonContent;
}))
<div class = 'calculator-grid'>
        <div class = 'output'>
            <div class = 'previous-operand'></div>
            <div data-display class = 'display'></div>
        </div>
        <button data-all-clear class = 'span-two grey-button'>AC</button>
        <button data-delete class = 'grey-button'>DEL</button>
        <button data-operator class = 'orange-button'>÷</button>
        <button data-number >7</button>
        <button data-number>8</button>
        <button data-number>9</button>
        <button data-operator class = 'orange-button'>*</button>
        <button data-number>4</button>
        <button data-number>5</button>
        <button data-number>6</button>
        <button data-operator class = 'orange-button'>+</button>
        <button data-number>1</button>
        <button data-number>2</button>
        <button data-number>3</button>
        <button data-operator class = 'orange-button'>-</button>
        <button data-number class = 'span-two'>0</button>
        <button data-number>.</button>
        <button data-equals class = 'orange-button'>=</button>
    </div>