• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

질문드립니다.

23.03.15 14:21 작성 조회수 345

1

강의 잘 듣고 있습니다.

가위바위보 게임에서 텍스트로 한것을 가위바위보 이미지로 하는 경우는 어떻게 해야 하나요?

 

이렇게 되어 있는 것을....

<button class="scissors">가위</button>
<button class="rock">바위</button>
<button class="paper">보</button>

<button class="scissors"><img src="img/game1.png" alt="가위"></button>
<button class="rock"><img src="img/game2.png" alt="바위"></button>
<button class="paper"><img src="img/game3.png" alt="보"></button>
console.log(event.target.innerText);

이 부분을 어떻게 바꾸어 하는지....

답변 1

답변을 작성해보세요.

0

안녕하세요 gangsugi님.

기존 코드는 버튼의 텍스트를 가져와서 비교를 하기 때문에 innerText 값을 가져왔었습니다. 하지만 질문 주신 것처럼 텍스트는 사용하지 않고 버튼을 이미지로 변경하고 싶으시다면, dataset 기능을 활용하여 요소에 값을 넣고 가져다 비교하는 방법으로 변경해보세요.

dataset 사용법

다음 코드와 같이 data-[원하는이름]="값" 으로 값을 입력하세요.

<button class="scissors">
  <img src="img/game1.png" alt="가위" data-choice="가위" />
</button>

<button class="rock">
  <img src="img/game2.png" alt="바위" data-choice="보" />
</button>

<button class="paper">
  <img src="img/game3.png" alt="보" data-choice="바위" />
</button>

그 다음에 자바스크립트에서 접근하실 때는 다음 코드처럼 dataset.[정했던이름]으로 접근하실 수 있습니다.

const user = event.target.dataset.choice;
console.log(user);

로직은 얼마든지 바꿀 수 있습니다. (그냥 클래스 이름으로 가져와서 비교를 한다던지 등) 하지만 기존 코드를 변경하지 않는 선에서 버튼만 이미지로 변경하시려면 이 방법이 제일 간단한 듯 합니다. ^^

gangsugi님의 프로필

gangsugi

질문자

2023.03.15

아 data 속성을 이용하는 방법이 있었네요...빠른 답변 감사드립니다.