강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của gangsugi5753
gangsugi5753

câu hỏi đã được viết

Cú pháp cốt lõi cơ bản của JavaScript ES6+

질문드립니다.

Đã giải quyết

Viết

·

519

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);

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

Câu trả lời 1

0

erumcoding님의 프로필 이미지
erumcoding
Người chia sẻ kiến thức

안녕하세요 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
Người đặt câu hỏi

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

 

Hình ảnh hồ sơ của gangsugi5753
gangsugi5753

câu hỏi đã được viết

Đặt câu hỏi