按下时如何存储 'button' 标签中的 e.target.innerText?

我在计算器项目中,我在第 5 部分。“创建当您单击数字按钮时填充显示的函数。您应该将‘显示值’存储在某个变量中以供下一步使用。” 并且我在存储用户按下的按钮的值以便稍后用作操作数和运算符时遇到问题。

现在,我正在尝试从单击的按钮中获取并存储一些 var innerText,以用作用户的输入值。 为此,我选择在 forEach 中使用侦听器,但目前只有我可以将 innerText 返回到控制台。 我还尝试将以下代码封装在一个函数中,但由于作用域函数的限制,我无法通过该函数返回 innerText。 我尝试过的例子:

const buttons = document.querySelectorAll(".buttons-grid")
function getInner(){
buttons.forEach((button) =>{
  button.addEventListener('click', e => {
    return console.log(e.target.innerText)
  })
})
return e.target.innerText //doesn't work
} 

继续,我需要的是以一种或两种方式来存储用户按下的键的值,以便稍后用作操作数或运算符。

此外,我想提供一些知识,我错过了一些重要的概念,以了解我在做什么和我必须做什么,因此,为此,我也会感谢任何类型的说明作为学习资源。

我在做什么:

const buttons = document.querySelectorAll(".buttons-grid")

buttons.forEach((button) =>{
  button.addEventListener('click', e => {
    return console.log(e.target.innerText)
  })
})
回答
M
Mr. Emanuel Little III
3周前

您可以在事件侦听器函数之外使用变量,并在单击按钮时为其分配 e.target.innerText 的值:

const buttons = document.querySelectorAll(".buttons-grid");
let displayValue = '';

buttons.forEach((button) => {
  button.addEventListener('click', e => {
    displayValue = e.target.innerText;
    console.log(displayValue);
    // do something with the displayValue variable
  })

});