I have a list of cards, when you click on a card, it opens and a class "opened" is added to it. How to make it so that when all the cards are opened a button will appear (does not matter the button or some other action);
HTML when the program starts:
<ul id='container'>
<li class='card'></li>
<li class='card'></li>
<li class='card'></li>
<li class='card'></li>
<li class='card'></li>
</ul>
When all cards opened:
<ul id='container'>
<li class='card opened'></li>
<li class='card opened'></li>
<li class='card opened'></li>
<li class='card opened'></li>
<li class='card opened'></li>
</ul>
<button class='btn-restart'>Restart</button>
EDITED:
for some reason, even when i make the button appear when at least 1 card has a class 'opened', nothing happens
JS:
function couplesApp() {
const container = document.getElementById('container');
const buttonRestart = createRestartButton();
// some other essential stuff i didn't include
const cards = document.getElementsByClassName('card');
for (let i = 0; i < cards.length; i++) {
if (cards[i].classList.contains('opened')) {
container.append(buttonRestart);
};
};
EDITED (2):
SOLUTION IS:
document.querySelector('#container').addEventListener('click', () => {
const cards = document.getElementsByClassName('card');
for (let i = 0; i < cards.length; i++) {
if (cards.length === document.querySelectorAll('.card.opened').length){
container.append(buttonRestart);
};
};
});
Thanks to Scott Marcus.