如何在Search()函数中获取选中的tab按钮ID?
Bootstrap Tab选中项ID获取及跳转解决方案
核心解决思路
Bootstrap Tab组件会为当前激活的标签按钮自动添加active类,直接通过这个类定位到选中的按钮,再提取其ID即可实现后续分支逻辑。
具体代码实现
方法一:原生DOM查询(无需依赖Bootstrap JS)
直接在Search()函数中定位激活状态的Tab按钮:
function Search() { // 定位ul#FlightType下的激活Tab按钮 const activeTabBtn = document.querySelector('#FlightType .nav-link.active'); if (!activeTabBtn) { console.log("未选中任何Tab选项"); return; } const selectedTabId = activeTabBtn.id; // 根据ID执行不同页面跳转 switch(selectedTabId) { case "tab-domestic": window.location.href = "/domestic-flights"; break; case "tab-international": window.location.href = "/international-flights"; break; case "tab-charter": window.location.href = "/charter-flights"; break; default: console.log("未知的Tab选项ID"); } }
方法二:Bootstrap官方API(需引入Bootstrap JS)
如果项目中已经加载Bootstrap的JavaScript,可以通过Tab实例直接获取激活元素:
function Search() { // 获取Tab组件实例 const tabInstance = bootstrap.Tab.getOrCreateInstance(document.getElementById("FlightType")); const activeTabBtn = tabInstance._activeElement; if (activeTabBtn) { const selectedTabId = activeTabBtn.id; // 跳转逻辑同方法一 } }
常见坑点排查
- 确保Tab按钮的class包含
nav-link,父级<ul>需添加nav nav-tabs类(Bootstrap Tab标准结构) - 检查页面中是否存在重复ID的元素,这会导致DOM查询失效
- 确认
Search()函数的绑定逻辑正确,没有被其他事件监听覆盖
内容的提问来源于stack exchange,提问作者Najah
相关产品推荐
相关产品推荐

