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

当aria-checked为true时能否显示元素?相关实现问题求助

问题解决方案

原代码的关键问题:

  • elems2是HTMLCollection集合,不能直接调用getAttribute,必须遍历每个元素单独获取属性
  • 循环条件里的t未定义,应该改为r++来正常遍历
  • aria-checked属性的值是字符串类型的"true",不是布尔值true,直接对比== true会不匹配
  • 缺少点击事件监听,代码只在初始化时执行一次,没有响应用户的点击操作

修正后的完整代码:

// 初始化隐藏所有wapf元素
var elems1 = document.getElementsByClassName('wapf');
for (var i = 0; i < elems1.length; i++) {
    elems1[i].style.display = 'none';
}

// 获取所有选项按钮
var elems2 = document.getElementsByClassName('button-variable-item-resize');

// 给每个按钮添加点击事件监听
for (var r = 0; r < elems2.length; r++) {
    elems2[r].addEventListener('click', function() {
        // 遍历所有按钮,根据aria-checked状态控制对应wapf元素的显示
        for (var idx = 0; idx < elems2.length; idx++) {
            var isChecked = elems2[idx].getAttribute('aria-checked') === 'true';
            elems1[idx].style.display = isChecked ? 'block' : 'none';
        }
    });
}

补充说明:

  • 点击事件内重新遍历所有按钮,适配单选场景(如果是多选逻辑,可调整为只处理当前点击的按钮)
  • 确保elems1和elems2的元素数量一一对应,索引匹配逻辑才有效;如果数量不对应,需要通过自定义属性(比如data-target)绑定元素间的关联关系

内容的提问来源于stack exchange,提问作者skabidabido

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 00:40:18