首页 > 解决方案 > 数组 JavaScript

问题描述

我已经开始做一个记忆游戏,但我有一个问题:

let card = [];

function makeCards() {

  let cardSymbol = [];

  const scorePan = document.querySelector('section');

  scorePan.insertAdjacentHTML('afterend', '<ul class="deck"></ul>');

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


  for (let i = 1; i < 17; i++) {

    card[i] = document.createElement('li');

    card[i].setAttribute('class', 'card');

    cardSymbol[i] = document.createElement('i');

    cardSymbol[i].setAttribute('class', `fa fa-${symbols[i]}`);

    card[i].appendChild(cardSymbol[i]);

    cardDeck.appendChild(card[i]);
  }


}

makeCards();

因此,在数组卡中,我存储了所有卡片,并将卡片添加到函数 makeCards 中,问题是我想在另一个函数中为每张卡片添加一个事件监听器,但是如果我使用 for 循环遍历元素我 console.log() 它向我显示未定义的每个元素,这发生在我在函数中或任何函数之外编写循环,但是如果我 console.log(card) ; 它向我展示了一个包含数组所有元素的数组。为什么我不能遍历它们,因为我有一个数组?或者我应该在函数 makeCards 中创建元素时将 eventListerns 添加到元素中??????

标签: javascriptarraysfunction

解决方案


您需要一个实时事件侦听器。如果您使用的是 jQuery,您可以使用

或者如果你使用的是原生 js,你可以实现这个


推荐阅读