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

如何为父元素添加class?.arrows关联父元素的类与属性设置问题

问题修正方案

你的代码存在两个关键问题,以下是修正后的实现:

问题分析

  1. jQuery对象误用原生方法:setAttribute是原生DOM元素的方法,不能直接调用jQuery对象的这个方法,需改用jQuery的attr()方法。
  2. 元素选择逻辑错误:.arrows的祖先里没有.navbar-toggler,两者是同级兄弟结构(.navbar-toggler和.collapse为同级),需要通过.arrows关联的data-target找到对应的.collapse,再通过该.collapse的id匹配.navbar-toggler的data-target来定位目标元素。

修正后的代码

$(function() {
  // 遍历所有符合条件的.arrows元素
  $('.arrows[aria-expanded="true"]').each(function() {
    // 获取当前arrows关联的collapse容器
    const targetCollapse = $($(this).data('target'));
    // 为collapse容器添加'in'类
    targetCollapse.addClass('in');
    
    // 找到对应collapse的navbar-toggler元素
    const navbarToggler = $('.navbar-toggler[data-target="#' + targetCollapse.attr('id') + '"]');
    // 设置navbar-toggler的aria-expanded属性
    navbarToggler.attr('aria-expanded', 'true');
  });
});

代码说明

  • 用each()遍历所有符合条件的.arrows,确保每个元素都能被正确处理。
  • 通过data('target')获取.arrows绑定的折叠容器,为其添加in类。
  • 借助折叠容器的id,匹配对应data-target的.navbar-toggler,设置其aria-expanded属性为字符串类型的"true"(符合ARIA属性规范)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 18:22:59