В моей функции hideMessage(selectedCards)
я пытаюсь установить новый элемент div для каждого индекса в моей переменной selectedCards
. Однако в строке selectedCards[i] = generateACard(generateRandomAttributes(easyDifficulty));
я получаю сообщение о том, что существует «Uncaught TypeError: не удалось установить индексированное свойство для« NodeList »: установщик свойства индекса не поддерживается».
Насколько я понимаю, это потому, что Chrome больше не позволяет устанавливать новые индексы на NodeLists сейчас. С учетом вышесказанного, есть ли альтернативный способ mimi c поведения, которое я пытаюсь получить здесь?
Я искал разные способы обновления DOM. Будет ли работать такой метод, как replaceChild ()?
function cardSelected() {
if (!this.classList.contains("selected")) {
this.classList.add("selected");
let selectedCards = qsa(".selected");
if (selectedCards.length === 3) {
for (let i = 0; i < selectedCards.length; i++) {
selectedCards[i].classList.remove("selected");
}
if (isASet(selectedCards)) {
messageDisplay(selectedCards, "SET!");
let foundSets;
foundSets++;
qs("#set-count").textContent = foundSets;
} else {
messageDisplay(selectedCards, "Not a Set");
}
let timeDelay = 1000;
setTimeout(() => {
hideMessage(selectedCards);
}, timeDelay);
}
} else {
this.classList.remove("selected");
}
}
function messageDisplay(selectedCards, displayMessage) {
for (let i = 0; i < selectedCards.length; i++) {
let msg = gen("p");
msg.textContent = displayMessage;
selectedCards[i].classList.add("hide-imgs");
selectedCards[i].appendChild(msg);
}
}
function hideMessage(selectedCards) {
for (let i = 0; i < selectedCards.length; i++) {
let msg = qs("#" + selectedCards[i].id + " p");
selectedCards[i].removeChild(msg);
selectedCards[i].classList.remove("hide-imgs");
if (isASet(selectedCards)) {
qs("#" + selectedCards[i].id).innerHTML = "";
let divCards = qsa("#board div");
let board = [];
for (let i = 0; i < divCards.length; i++) {
board.push(divCards[i].id);
}
while (board.includes(selectedCards[i].id) && board.length > 0) {
selectedCards[i] = generateACard(generateRandomAttributes(easyDifficulty));
}
generateImages(generateRandomAttributes(easyDifficulty), selectedCards[i]);
}
}
}