강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

pos7271님의 프로필 이미지
pos7271

작성한 질문수

웹 게임을 만들며 배우는 자바스크립트

카드 색 부여하기

질문있습니다.

작성

·

189

0

선생님 저는 js로 div를 안만들고 html으로 구현을 한 상태입니다. 랜덤으로 색을 뽑아서 뒷배경에 넣어줘야하는데 안들어갑니다 ㅜㅜ 어떤식으로 구현해야할까요..?

function colorSetting() {
    for (let i =0i < 12i ++) {
        cardBack.style.backgroundColor = color[i];
    }
    for (const card of cardList) {
        card.addEventListener('click'function(){
            card.classList.toggle('flipped');
        });
    }

} 

html으로 card 12개를 다 작성한 상태라

queryselectorAll으로 가져와서  for of해줬습니다 ,,

뒤집는 건 문제없이 되는데 뒷배경 색상적용이 안됩니다..!

답변 5

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

네 이미 for (const back of cardBack)을 한 상황에서 12번 반복하므로 이중으로 반복문을 돌리면 12*12해서 144번 반복문을 돌리는 것과 다름없습니다. for문은 한 번만 쓰세요.

0

pos7271님의 프로필 이미지
pos7271
질문자

문제를  찾았습니다..! cardBack도 querySelectorAll로 가져와야하는데 querySelector 으로 가져와서 하나에만 먹혔던거였습니다ㅜㅜ 그런데 또 다른 문제가 생겼습니다..  

이런식으로 코드를 수정해봤는데 모든카드가 다 똑같은 색으로 먹힙니다..ㅠ 이중포문 사용해서 하면 안되는걸까요..?

여기서 cardBack은 querySelectorAll로 가져온 값입니다..!

콘솔로그 back 해보면 다 똑같은 컬러로 찍힙니다 ㅠ ㅠ 실제로 구현해봐도 뒤집었을 때 똑같은 색상들이구요..

  for (const back of cardBack) {
        for (let i =0i < 12i ++) {
            back.style.backgroundColor = color[i];
        }
        console.log(back);
   }

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

console.log(cardBack) 한 번 해보세요. 그리고 결과에 마우스를 올려보세요.

0

pos7271님의 프로필 이미지
pos7271
질문자

네! 했는데도 안됩니다ㅜㅜ..

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

cardBack도 querySelector하셨나요?

pos7271님의 프로필 이미지
pos7271

작성한 질문수

질문하기