亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我的事件監聽器中只有部分 if-else 語句有效

我的事件監聽器中只有部分 if-else 語句有效

皈依舞 2024-01-18 20:34:57
代碼新手在這里。所以我正在嘗試對我的石頭剪刀布游戲進行一些改變。我希望捕獲分數并在頁面上顯示結果文本。每次單擊按鈕時都會顯示文本,但一旦我添加了 +1 增量和在屏幕上實時顯示分數的代碼,文本就不會顯示。我只是首先在“rock”事件偵聽器上測試它,以確保它有效。//Selects the classes .rock .paper .scissorsconst rock = document.querySelector(".rock")const paper = document.querySelector(".paper")const scissors = document.querySelector(".scissors")//new div under resultsconst results = document.getElementById("results");//new itemslet itemRock = document.createElement('h3');let itemPaper = document.createElement('h3');let itemScissors = document.createElement('h3');    //variable for computerPlay() function to be printed to #resultsitemRock.textContent = 'You have chosen rock!';itemPaper.textContent = 'You have chosen paper!';itemScissors.textContent = 'You have chosen scissors!';//Player + computer score for count purposeslet playerScore = 0;let computerScore = 0;rock.addEventListener('click', function() {    computerPlay();    if(computerPlay() === 'paper') {        itemRock.textContent = 'You have chosen rock and the computer has chosen paper.' + 'You lose, paper beats rock! Try again';        computerScore += 1;         document.getElementById("computer-score").innerText = computerScore;    } else if (computerPlay() === 'rock') {        itemRock.textContent = 'You have chosen rock and the computer has chosen rock.' +  'Its a draw, try again';    } else {        itemRock.textContent = 'You have chosen rock and the computer has chosen         scissors. ' + 'You win! Rock beats scissors.';        playerScore += 1;        document.getElementById("player-score").innerText = playerScore;    }    return 'rock';  });HTML 代碼:<div class="choice"><button type="button" class="rock">Rock</button><button type="button" class="paper">Paper</button><button type="button" class="scissors">Scissors</button></div>    <div id="results"></div><p>Player Score: <a id="player-score">0</a></p><p>Computer Score: <a id="computer-score">0</a></p>任何和所有的幫助將不勝感激!
查看完整描述

2 回答

?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

我看到您每次執行 if/else 語句時都會調用 ComputerPlay() 函數。假設computerPlay() 隨機返回石頭、布或剪刀,這將返回不同的值。您可以做的一件簡單的事情是將返回值存儲在像這樣的變量中


let computersHand = computerPlay();

然后在執行 if/else 語句時使用此變量


if (computersHand === 'rock') {

? ? // ...

} else if (computersHand === 'paper') {

? ? // ...

} else {

? ? // ...

}

如果您出于某種原因不想將返回值存儲到變量中,可以使用 switch 語句


switch (computerPlay()) {

? ?case 'rock':

? ? ? ?// ...

? ? ? ?break;

? ?case 'paper':

? ? ? ?// ...

? ? ? ?break;

? ?case 'scissors':

? ? ? ?// ...

? ? ? ?break;

}


查看完整回答
反對 回復 2024-01-18
?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

您應該調用該computerPlay函數一次


rock.addEventListener('click', function() {

    

    const result = computerPlay();

    

    if (result) {

         itemRock.textContent = 'You have chosen rock and the computer has chosen paper. 

         ' + 'You lose, paper beats rock! Try again';

         computerScore += 1;

         document.getElementById("computer-score").innerText = computerScore;

    } else if(result) {

         itemRock.textContent = 'You have chosen rock and the computer has chosen rock. 

         ' +  'Its a draw, try again';

    } else {

         itemRock.textContent = 'You have chosen rock and the computer has chosen 

         scissors. ' + 'You win! Rock beats scissors.';

         playerScore += 1;

         document.getElementById("player-score").innerText = playerScore;

    }

  

    return 'rock';  

})

computerPlay像這樣調用函數


computerPlay();

if (computerPlay() === 'paper')

沒有意義,因為你稱它為兩次(計算機一鍵播放兩次)


查看完整回答
反對 回復 2024-01-18
  • 2 回答
  • 0 關注
  • 228 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號