-3
const cardsList = [
                    "fa fa-diamond",
                    "fa fa-paper-plane-o",
                    "fa fa-anchor",
                    "fa fa-bolt",
                    "fa fa-cube",
                    "fa fa-anchor",
                    "fa fa-leaf",
                    "fa fa-bicycle",
                    "fa fa-diamond",
                    "fa fa-bomb",
                    "fa fa-leaf",
                    "fa fa-bomb",
                    "fa fa-bolt",
                    "fa fa-bicycle",
                    "fa fa-paper-plane-o",
                    "fa fa-cube",
                    ];

const deck = document.querySelector('.deck');

function gameStart(){
        let cardShuffle = shuffle(cardsList);
        deck.innerHTML = "";
        for(let i = 0; i < cardShuffle.length; i++){
            deck.appendChild(cardShuffle);
      }
}

I am designing a memory game whenever I am calling the function gameStart() on window load, I am getting Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'.

Abhishek Singh
  • 42
  • 2
  • 11

3 Answers3

0

"fa fa-diamond" seems like a class name to me. So if I assume that you want <div class="fa fa-diamond"></div>

In the loop, but could be better in a forEach:

let node = document.createElement('div');
node.className = cardShuffle[i];
deck.appendChild(node);

// will create a <div class="fa fa-diamond"></div>, ...

progysm
  • 1,072
  • 6
  • 7