You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在所有卡片添加opened类后显示按钮?[JavaScript]

问题:所有卡片展开后显示按钮

我有一组卡片列表,点击卡片时卡片会展开并添加opened类。如何实现当所有卡片都展开后显示一个按钮(按钮或其他动作均可)?

初始HTML结构

<ul id='container'>
    <li class='card'></li>
    <li class='card'></li>
    <li class='card'></li>
    <li class='card'></li>
    <li class='card'></li>
</ul>

卡片全展开后的目标结构

<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>

遇到的问题

我尝试编写代码,想在至少有一个卡片添加opened类时显示按钮,但完全没有效果。我的相关JavaScript代码如下:

function couplesApp() {
    const container = document.getElementById('container');
    const buttonRestart = createRestartButton();

    // 此处省略其他必要代码

    const cards = document.getElementsByClassName('card');
    for (let i = 0; i < cards.length; i++) {
        if (cards[i].classList.contains('opened')) {
            container.append(buttonRestart);
        };
    };

解决方案

最终找到可行的代码方案:

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);
            };
        };
    });

感谢Scott Marcus提供的解决方案。


内容的提问来源于stack exchange,提问作者Glub-tubus Wepple

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 13:30:52