简体   繁体   English

将值从按钮传递到 function 中的参数或变量

[英]Pass value from a button to a parameter in a function or to a variable

im trying to make this "rock, paper, scissors" work using buttons.我试图使用按钮使这种“石头、纸、剪刀”工作。

I'm trying two different ways but i dont know how to achieve it:我正在尝试两种不同的方法,但我不知道如何实现它:

1st way: Pass to the parameter playerSelection in function playRound(playerSelection, computerSelection the correct parameter when we click on the buttons in the html第一种方式:在function playerSelection function playRound(playerSelection, computerSelection正确的参数当我们点击html中的按钮时选择正确的参数)

or或者

2nd way: Pass to variable var playerSelection inside function playRound(playerSelection, computerSelection the correct value when we click on the buttons in the html.第二种方法:当我们点击 html 中的按钮时,将变量var playerSelection传递给function playRound(playerSelection, computerSelection中的变量 var playerSelection。

 function computerPlay() { let optionsList = ["rock", "paper", "scissors"]; let option = optionsList[Math.floor(Math.random() * optionsList.length)]; return option } function playRound(playerSelection, computerSelection) { var playerSelection =? ? ? ? ? ? ? var computerSelection = computerPlay(); if (playerSelection = "rock") { switch (computerSelection) { case "rock": return "T"; case "paper": return "M"; case "scissors": return "Y"; } } else if (playerSelection = "paper") { switch (computerSelection) { case "rock": return "Y"; case "paper": return "T"; case "scissors": return "M"; } } else if (playerSelection = "scissors") { switch (computerSelection) { case "rock": return "M"; case "paper": return "Y"; case "scissors": return "T"; } } } function playGame() { let i = 0 for (i = 1; i <= 3; i++) { let outcome = playRound() if (outcome == "M") { console.log("Machine Wins"); } else if (outcome == "Y") { console.log("You Win") } else if (outcome == "T") { console.log("Tie, try again") } } } let rockButton = document.querySelector("#rock"); let paperButton = document.querySelector("#paper"); let scissorsButton = document.querySelector("scissors"); rockButton.addEventListener("click", function() { playRound("rock") }); paperButton = addEventListener("click", function() { playRound("paper") }); scissorsButton = addEventListener("click", function() { playRound("scissors") }); let playButton = document.querySelector("#play") playButton.addEventListener("click", playGame)
 <title>ROCK PAPER SCISSORS</title> <script src="/rock_paper_scissors.js" async></script> <div class="buttons"> <button id="rock">ROCK</button> <button id="paper">PAPER</button> <button id="scissors">SCISSORS</button> </div> <div> <button id="play">PLAY!</button> </div> <div id="results"></div>

You likely want something more like this你可能想要更多这样的东西

I use an array to count我用一个数组来计数

 function computerPlay() { let optionsList = ["rock", "paper", "scissors"]; let option = optionsList[Math.floor(Math.random() * optionsList.length)]; return option } function playRound(playerSelection) { var computerSelection = computerPlay(); if (playerSelection = "rock") { switch (computerSelection) { case "rock": return "T"; case "paper": return "M"; case "scissors": return "Y"; } } else if (playerSelection = "paper") { switch (computerSelection) { case "rock": return "Y"; case "paper": return "T"; case "scissors": return "M"; } } else if (playerSelection = "scissors") { switch (computerSelection) { case "rock": return "M"; case "paper": return "Y"; case "scissors": return "T"; } } } let cnt = 0, results = []; function playGame() { document.querySelector(".buttons").classList.remove("hide"); document.getElementById("results").textContent = ""; cnt= 0; results = []; } window.addEventListener("load", function() { const result = document.getElementById("results"); document.querySelector(".buttons").addEventListener("click",function(e) { const outcome = playRound(e.target.id.slice(1)) let text; if (outcome == "M") { text = "Machine Wins"; } else if (outcome == "Y") { text = "You Win" } else if (outcome == "T") { text = "Tie, try again" } results.push(outcome) results.sort(); if (results.length === 3) { const final = results.toString(); if (final.startsWith("YY")) text = "You won the match" else if (final.startsWith("MM")) text = "The computer won the match" else text = "You tied"; document.querySelector(".buttons").classList.add("hide"); } result.innerHTML = text; }); document.getElementById("play").addEventListener("click", playGame) })
 .hide { display:none; }
 <title>ROCK PAPER SCISSORS</title> <script src="/rock_paper_scissors.js" async></script> <div> <button id="play">PLAY!</button> </div> <div class="buttons hide"> <button id="rock">ROCK</button> <button id="paper">PAPER</button> <button id="scissors">SCISSORS</button> </div> <div id="results"></div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM