javascript 如何在全局变量中存储按钮的文本?

cld4siwp  于 2023-04-28  发布在  Java
关注(0)|答案(2)|浏览(140)

我试图将按钮的文本存储在变量或函数中,以便以后使用。所以我认为应该是在全局范围内。但我不知道该怎么做,因为如果我安慰。记录它显示的函数 undefined。我假设这是因为主函数实际上没有返回任何东西,嵌套的函数返回了。我在考虑给嵌套函数命名,但是我不知道如何命名forEach和eventListener函数,或者这是否对我有帮助。我真是迷路了。请派人来帮忙

function choice() {
  document.querySelectorAll('.container').forEach((button) => {
    button.addEventListener('click', (event) => {
      let playerChoice = event.target.textContent;
      return playerChoice;
    });
  });
}
console.log(choice());
<div class="container">
  <button class="rock">rock</button>
  <button class="paper">paper</button>
  <button class="scissors">scissors</button>
</div>

如果我安慰你。记录playerChoice,然后我调用函数它的工作,但据我所知,我不能存储结果。

zqdjd7g9

zqdjd7g91#

可以将值存储在全局变量中。但是只有在用户单击之后才能记录日志,因此需要另一个事件侦听器来显示这一点。

let playerChoice;

function choice() {
  document.querySelectorAll('.container').forEach((button) => {
    button.addEventListener('click', (event) => {
      playerChoice = event.target.textContent;
    });
  });
}

choice();
document.querySelector("#show").addEventListener('click', () => console.log(playerChoice));
<div class="container">
  <button class="rock">rock</button>
  <button class="paper">paper</button>
  <button class="scissors">scissors</button>
</div>

<button id="show">What did I click?</button>
djp7away

djp7away2#

如果你想把它保存在全局变量中,那么在你点击它的时候声明这个变量并设置它的值。我还给了你另一个函数,getPlayerChoice作为可选的,如果你想调用任何函数来做某些事情,你可以这样做-

var playerChoice;

function getPlayerChoice(text) {
    console.log("text", text);
    console.log("global value", playerChoice);
    // You can do your work here
}

function choice() {
    document.querySelectorAll('.container').forEach((button) => {
        button.addEventListener('click', (event) => {
            playerChoice = event.target.textContent;
            getPlayerChoice(playerChoice);
        });
    });
}

相关问题