1
2
3
const elements = document.querySelectorAll('.element')
let array = []
let clickCount = 0
const arrayTest = [...elements]
elements.forEach(e => {
e.addEventListener('click', () => {
array.push(e)
clickCount++
if (clickCount === 3) {
for (let i = 0; i < array.length; i++) {
if (array.every((e, i) => e.classList[0] === arrayTest[i].classList[0])) {
console.log('Правильно')
array = []
clickCount = 0
} else {
console.log('Неправильно')
array = []
clickCount = 0
}
}
}
})
})
Артур КирилловПрофи (656)
4 месяца назад
Так нормально, но логику можно реализовать проще. Так же желательно перебирать не нод лист (подобие массива) , а сам массив, путём const example = Array.from(qsa).
Артур КирилловПрофи (656)
4 месяца назад
Классы не для этого в общем то и созданы, чтобы выбирать элементы по ним. Классы могут быть общими для нескольких элементов, а создавать отдельный класс для поиска конкретного элемента тоже не правильно. NodeList представляет собой коллекцию DOM объектов, это не массив, как может показаться, он обладает не всеми функциями массива (как я помню, да и раньше когда я перебирался форычем по ноду в некоторых случаях вызывало ошибку). Это не обязательно соблюдать, но будет правильнее в любом случае)