使用 forEach 将事件监听器添加到所有按钮

addEventListener to all buttons using forEach

我正在尝试 addEventListener 我的所有按钮。这是我第一次使用 addEventListener,它不是 运行 usergetNumber 函数,它应该在单击任何按钮时显示一个随机数。

const btns = document.querySelectorAll(".button");

btns.forEach(function(i) {
    i.addEventListener('click', usergetNumber(){
    });

function usergetNumber(){
    const userRanNum = Math.floor(Math.random() * 10)
    userscore_div.innerHTML = "You have " + userRanNum + " points";
    computergetNumber();

function computergetNumber(){
    const compRanNum = Math.floor(Math.random() * 10)
    computerscore_div.innerHTML = "You have " + compRanNum + " points";
}

What am I doing wrong?

从上到下。

  1. addEventListener() 中已经有函数 usergetNumber() { ... } 声明。这是一个函数声明,而不是这里的回调。参考:Event Listener Callbacks.
  2. usergetNumber() { ... 上的右括号丢失,因此未声明。

这是一个基本示例。您也可以只 return 而不是 console.log。在这里,我只是想复制逻辑。

const btn = document.querySelectorAll('button');
    
function getRandomNum() {
  let randomNum = Math.random();
  console.log(randomNum);
} 

btn.forEach(function(button) {
  button.addEventListener('click', getRandomNum);
});