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

Bootstrap 4.6 Collapse组件点击按钮无法切换展开/收起问题

问题原因

你的问题核心是ID命名不符合CSS选择器规范:Bootstrap 4的collapse组件在解析data-target属性时,会将属性值作为标准CSS选择器处理,而CSS规范明确要求ID选择器不能以数字作为首字符。你使用的30-50hp是数字开头的ID,因此data-target="#30-50hp"无法被正确识别匹配到对应元素。

你在控制台直接调用$("#30-50hp").collapse('show')能生效,是因为jQuery对数字开头的ID选择器做了额外兼容处理,能正确找到对应DOM元素,两种场景的解析逻辑不同才导致了表现差异。


解决方案

方案1(推荐):调整ID命名规则

将ID修改为字母开头的格式,同步修改按钮的对应属性即可,修改示例如下:

<button class="btn btn-secondary" type="button" data-toggle="collapse" data-target="#hp-30-50" aria-expanded="false" aria-controls="hp-30-50">
  30-50 HP
</button>
<div class="collapse" id="hp-30-50">
  <div class="card card-body">
    <h4 class="card-title">30-50 HP Card Title</h4>
    <ul>
      <li>List item 1</li>
    </ul>
  </div>
</div>

方案2:手动绑定JS事件控制

如果必须保留数字开头的ID,可放弃data属性触发方式,手动绑定按钮点击事件控制折叠状态:

$('.btn-secondary').on('click', function() {
  $("#30-50hp").collapse('toggle')
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 23:42:03