onClick 이벤트로 개체 값 변경

Justmatt

다시 묻게되어 미안하지만 컨텍스트에 대한 코드를 더 추가하고 싶었습니다.

가위 바위 보 게임을 만들고 있는데 버튼을 눌렀을 때 playerChoice 키를 바꾸고 싶습니다.

각 버튼에 onclick 이벤트를 추가하고 gameOptions 인덱스를 참조하도록 playerChoice 속성을 설정하는 함수를 실행하고 싶습니다.


<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>

<h1>Lapis, Papyrus Scalpellus</h1>

<h2>Make a Choice</h2>
<button id="Lapis">Lapis</button>
<button id="Papyrus">Papyrus</button>
<button id=Scalpellus>Scalpellus</button>
<h2>Game Results</h2>

<script src="script.js"></script>

</body>
</html>


const gameOptions = ["Lapis", "Papyrus", "Scalpellus"];

const newChoice = randomChoice();

console.log(newChoice);

const humanPlayer = {
  playerChoice: gameOptions[0],
};

const computerPlayer = {
  playerChoice: randomChoice(),
};

document.querySelector("#Lapis").onclick = function() {
  humanPlayer.playerChoice = gameOptions[0];
};

document.querySelector("#Papyrus").onclick = function() {
  humanPlayer.playerChoice = gameOptions[1];
};
document.querySelector("#Scalpellus").onclick = function() {
  humanPlayer.playerChoice = gameOptions[2];
};

console.log(humanPlayer);

//Random Choice
function randomChoice() {
  const theChoice = gameOptions[Math.floor(Math.random() * 3)];
  return theChoice;
}

//Players 

function resultText(innerText){
  const paragraph = document.createElement('p');
  paragraph.innerText = innerText;
  document.body.appendChild(paragraph);
}


//Outcomes
function fight(){
  if(computerPlayer.playerChoice === humanPlayer.playerChoice){
     resultText("Its a Tie!20. You chose " + humanPlayer.playerChoice + " and the computer chose " + computerPlayer.playerChoice);
  }else if (computerPlayer.playerChoice === "Lapis"){
    if(humanPlayer.playerChoice === "Papyrus"){
     resultText("Human Player Wins!6. You chose " + humanPlayer.playerChoice + " and the computer chose " + computerPlayer.playerChoice);
    }else if( humanPlayer.playerChoice === "Scalpellus"){
       resultText("Computer Player Wins!5 You chose " + humanPlayer.playerChoice + " and the computer chose " + computerPlayer.playerChoice);

    }
  }else if(computerPlayer.playerChoice === "Papyrus"){
    if ( humanPlayer.playerChoice === "Lapis"){
      resultText("Compter Player Wins!4. You chose " + humanPlayer.playerChoice + " and the computer chose " + computerPlayer.playerChoice);

    }else if( humanPlayer.playerChoice === "Scalpellus"){
      resultText("Human Player Wins!3. You chose " + humanPlayer.playerChoice + " and the computer chose " + computerPlayer.playerChoice);

    }
  }else if(computerPlayer.playerChoice === "Scalpellus"){
    if ( humanPlayer.playerChoice === "Lapis"){
      resultText("Human Player Wins!2. You chose " + humanPlayer.playerChoice + " and the computer chose " + computerPlayer.playerChoice);

    }else if( humanPlayer.playerChoice === "Papyrus"){
      resultText("Computer Player Wins!1. You chose " + humanPlayer.playerChoice + " and the computer chose " + computerPlayer.playerChoice);
    }
  }
}

fight()
스티븐 에커

다음을 사용하여 코드를 단순하게 유지할 수 있습니다.

var btns = document.querySelectorAll("button");
for (var i = 0; i < btns.length; i++){
  btns[i].addEventListener("click", btnHandler);
}

그런 다음 코드를 반복 할 필요없이 버튼을 클릭 할 때마다 핸들러 함수가 호출됩니다.

function btnHandler(el){
  switch (el.getAttribute("id")){
    case "Papyrus":
    ...
    default: break;
  }
}

또한 버튼 요소 자체를 전달할 수 있으므로 별도의 호출을 통해 각각의 다른 인스턴스에 대한 매개 변수를 전달하는 대신 필요할 때 ID 속성 만 가져올 수 있습니다. 승리 조건 확인의 경우 단순히 동일한 지 확인하여 여러 "if"문을 제거 할 수 있으며 그렇지 않은 경우 인간의 선택을 이길 수있는 컴퓨터 선택과 비교하고 그에 따라 결과를 설정합니다. 더 최적화 할 수 있지만 이것에서 뭔가를 배우고 싶어서 바이올린에 대해서도 언급했습니다.

이 예제에서는 플레이어가 선택할 수 있도록 fight () 함수를 버튼 핸들러로 옮겼으며 컴퓨터의 선택도 해당 지점에서만 트리거됩니다. 원래 코드에는 함수를 호출하고 변수를 설정했지만 사용하지 않은 몇 가지 인스턴스와 몇 가지 구문 오류가있었습니다.

첨부 된 바이올린 참조 : https://jsfiddle.net/s0toz3L8/2/

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

개체 값 변경

분류에서Dev

개체 값 변경

분류에서Dev

Onclick 이벤트로 매개 변수 전달

분류에서Dev

버튼 onClick에서 개체 이동 및 불투명도 변경

분류에서Dev

개체의 값 변경

분류에서Dev

개체의 값 변경

분류에서Dev

체크 박스 변경 이벤트를 통한 입력 값 변경

분류에서Dev

개체 값을 일치하는 매핑 된 값으로 변경

분류에서Dev

onclick 변수 값 변경

분류에서Dev

onClick 이벤트가 설정된 React Hook으로 img src 변경

분류에서Dev

동일한 HaschCode (중복 개체)로 인한 ArrayList 개체 값 변경

분류에서Dev

JavaScript : 경로가 지정된 깊이 중첩 된 개체의 모든 값 변경

분류에서Dev

jquery onclick 변경 값 22

분류에서Dev

Java 매개 변수 값 자체 변경

분류에서Dev

자바 스크립트 onClick 이벤트로 3 개의 이미지를 변경하는 방법은 무엇입니까?

분류에서Dev

변경 이벤트시 두 개의 종이 입력 값 동기화

분류에서Dev

경로 및 값을 사용하여 JSON 개체 업데이트

분류에서Dev

중첩 된 개체를 개체 인 값이 부모가 프로토 타입 인 개체 인 동일한 개체로 변경합니다.

분류에서Dev

인덱스 매개 변수가있는 Blazor / razor onclick 이벤트

분류에서Dev

onclick 이벤트에 매개 변수 전달

분류에서Dev

개체 키 이름을 바꾸고 개체 값을 문자열에서 숫자로 변경하는 방법

분류에서Dev

프로그래밍 방식으로 onclick 속성을 호출하고 이벤트 매개 변수와 대화

분류에서Dev

React : 두 개의 이벤트 핸들러 onClick 호출 및 자식 구성 요소의 스타일 변경

분류에서Dev

다음 또는 이전 div의 onclick 변경 값

분류에서Dev

다음 또는 이전 div의 onclick 변경 값

분류에서Dev

자바 스크립트 : onClick 함수를 사용하여 개체의 가변 색상을 변경하는 방법

분류에서Dev

onclick 이벤트 리스너를 매개 변수로 전달하는 li 요소에

분류에서Dev

onclick으로 한 번에 하나씩 개별 이미지 변경

분류에서Dev

개체 배열을 개체 값 배열로 변환

Related 관련 기사

  1. 1

    개체 값 변경

  2. 2

    개체 값 변경

  3. 3

    Onclick 이벤트로 매개 변수 전달

  4. 4

    버튼 onClick에서 개체 이동 및 불투명도 변경

  5. 5

    개체의 값 변경

  6. 6

    개체의 값 변경

  7. 7

    체크 박스 변경 이벤트를 통한 입력 값 변경

  8. 8

    개체 값을 일치하는 매핑 된 값으로 변경

  9. 9

    onclick 변수 값 변경

  10. 10

    onClick 이벤트가 설정된 React Hook으로 img src 변경

  11. 11

    동일한 HaschCode (중복 개체)로 인한 ArrayList 개체 값 변경

  12. 12

    JavaScript : 경로가 지정된 깊이 중첩 된 개체의 모든 값 변경

  13. 13

    jquery onclick 변경 값 22

  14. 14

    Java 매개 변수 값 자체 변경

  15. 15

    자바 스크립트 onClick 이벤트로 3 개의 이미지를 변경하는 방법은 무엇입니까?

  16. 16

    변경 이벤트시 두 개의 종이 입력 값 동기화

  17. 17

    경로 및 값을 사용하여 JSON 개체 업데이트

  18. 18

    중첩 된 개체를 개체 인 값이 부모가 프로토 타입 인 개체 인 동일한 개체로 변경합니다.

  19. 19

    인덱스 매개 변수가있는 Blazor / razor onclick 이벤트

  20. 20

    onclick 이벤트에 매개 변수 전달

  21. 21

    개체 키 이름을 바꾸고 개체 값을 문자열에서 숫자로 변경하는 방법

  22. 22

    프로그래밍 방식으로 onclick 속성을 호출하고 이벤트 매개 변수와 대화

  23. 23

    React : 두 개의 이벤트 핸들러 onClick 호출 및 자식 구성 요소의 스타일 변경

  24. 24

    다음 또는 이전 div의 onclick 변경 값

  25. 25

    다음 또는 이전 div의 onclick 변경 값

  26. 26

    자바 스크립트 : onClick 함수를 사용하여 개체의 가변 색상을 변경하는 방법

  27. 27

    onclick 이벤트 리스너를 매개 변수로 전달하는 li 요소에

  28. 28

    onclick으로 한 번에 하나씩 개별 이미지 변경

  29. 29

    개체 배열을 개체 값 배열로 변환

뜨겁다태그

보관