Bootstrap

Why do Bootstrap 5.3.2 dropdowns and collapses fail with multiple ID selectors like #main #submenu?

March 18, 2026

download ready
Thank You
Your submission has been received.
We will be in touch and contact you soon!

Bootstrap 5.3.2 introduced a regression in its internal selector resolution logic that caused components to fail when data-bs-target used compound selectors (e.g. #parent #child). Although valid CSS selectors, these targets could not be resolved by Bootstrap’s selector engine, resulting in silent failures without console errors. The issue affected components such as collapse, dropdown, modal, and offcanvas, and was fixed in Bootstrap 5.3.3.

Step 1: Identify the Problem

Check if using multiple IDs in data-target attributes

Code

<!-- BROKEN in 5.3.2 - Compound ID selector -->
<button data-bs-toggle="collapse" data-bs-target="#navbar #submenu">
  Toggle Submenu
</button>
<div id="navbar">
  <div id="submenu" class="collapse">Content</div>
</div>
      

Step 2: Immediate Workaround (5.3.2)

Use single ID or class selector as temporary fix

Code

<!-- WORKAROUND - Single class selector -->
<button data-bs-toggle="collapse" data-bs-target=".submenu-collapse">
  Toggle Submenu
</button>
<div id="navbar">
  <div class="submenu-collapse collapse">Content</div>
</div>
      

Step 3: Upgrade to Fixed Version (Recommended)

Update to Bootstrap 5.3.3+ which resolves selector parsing

Code

<!-- FIXED in Bootstrap 5.3.3+ -->
<!DOCTYPE html>
<html>
<head>
  <!-- Use latest fixed version -->
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
  <div class="container mt-5">
    <button class="btn btn-primary" data-bs-toggle="collapse" data-bs-target="#main #submenu">
      Toggle Submenu (Working)
    </button>
    
    <div id="main">
      <div id="submenu" class="collapse mt-3">
        <div class="card card-body">
          Submenu content loads correctly now!
        </div>
      </div>
    </div>
  </div>

  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
      

Step 4: Clear Caches & Verify Fix

Complete cleanup after upgrade

Code

# Clear browser cache
# 1. Hard refresh (Ctrl+F5)
# 2. Clear service worker (DevTools > Application)
# 3. Incognito test
# 4. Verify bundle version in Network tab

# npm/yarn update
npm update bootstrap@5.3.3
# or
yarn add bootstrap@5.3.3
      

 Step 5: Debug Checklist

Code

Bootstrap version 5.3.3+
No service worker caching old JS
Console shows no selector errors
data-bs-target="#parent #child" works
Test compound selectors work
Network tab confirms bundle.js 5.3.3
      
Hire Now!

Need Help with Bootstrap Development ?

Work with our skilled bootstrap developers to accelerate your project and boost its performance.
**Hire now**Hire Now**Hire Now**Hire now**Hire now

Why do Bootstrap 5.3.2 dropdowns and collapses fail with multiple ID selectors like #main #submenu?

Bootstrap 5.3.2 introduced a regression in its internal selector resolution logic that caused components to fail when data-bs-target used compound selectors (e.g. #parent #child). Although valid CSS selectors, these targets could not be resolved by Bootstrap’s selector engine, resulting in silent failures without console errors. The issue affected components such as collapse, dropdown, modal, and offcanvas, and was fixed in Bootstrap 5.3.3.

Step 1: Identify the Problem

Check if using multiple IDs in data-target attributes

Code

<!-- BROKEN in 5.3.2 - Compound ID selector -->
<button data-bs-toggle="collapse" data-bs-target="#navbar #submenu">
  Toggle Submenu
</button>
<div id="navbar">
  <div id="submenu" class="collapse">Content</div>
</div>
      

Step 2: Immediate Workaround (5.3.2)

Use single ID or class selector as temporary fix

Code

<!-- WORKAROUND - Single class selector -->
<button data-bs-toggle="collapse" data-bs-target=".submenu-collapse">
  Toggle Submenu
</button>
<div id="navbar">
  <div class="submenu-collapse collapse">Content</div>
</div>
      

Step 3: Upgrade to Fixed Version (Recommended)

Update to Bootstrap 5.3.3+ which resolves selector parsing

Code

<!-- FIXED in Bootstrap 5.3.3+ -->
<!DOCTYPE html>
<html>
<head>
  <!-- Use latest fixed version -->
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
  <div class="container mt-5">
    <button class="btn btn-primary" data-bs-toggle="collapse" data-bs-target="#main #submenu">
      Toggle Submenu (Working)
    </button>
    
    <div id="main">
      <div id="submenu" class="collapse mt-3">
        <div class="card card-body">
          Submenu content loads correctly now!
        </div>
      </div>
    </div>
  </div>

  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
      

Step 4: Clear Caches & Verify Fix

Complete cleanup after upgrade

Code

# Clear browser cache
# 1. Hard refresh (Ctrl+F5)
# 2. Clear service worker (DevTools > Application)
# 3. Incognito test
# 4. Verify bundle version in Network tab

# npm/yarn update
npm update bootstrap@5.3.3
# or
yarn add bootstrap@5.3.3
      

 Step 5: Debug Checklist

Code

Bootstrap version 5.3.3+
No service worker caching old JS
Console shows no selector errors
data-bs-target="#parent #child" works
Test compound selectors work
Network tab confirms bundle.js 5.3.3