질문있습니다.

20.08.28 21:57 작성 조회수 118

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

질문자

2020.08.30

문제를  찾았습니다..! 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

질문자

2020.08.30

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

0

cardBack도 querySelector하셨나요?