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

Bootstrap 5 Tab导航功能失效,请问遗漏了什么配置?

Bootstrap标签页无法工作的原因及修复方案

问题1:缺少Bootstrap JavaScript文件

Bootstrap 5的标签页交互功能依赖其官方JavaScript库,你当前只引入了Bootstrap的CSS样式文件,没有添加对应的JS文件。这是标签页无法切换的核心原因。

需要在jQuery之后引入Bootstrap的JS文件(推荐引入包含Popper的bundle版本,Bootstrap 5的组件依赖Popper实现弹窗、下拉等交互):

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-gtEjrD/SeCtmISkJkNUaaKMoLD0//ElJ19smozuHV6z3Iehds+3Ulb9Bn9Plx0x4" crossorigin="anonymous"></script>

问题2:aria-labelledby属性不匹配

你的标签面板(.tab-pane)的aria-labelledby属性值,和对应标签按钮的id不匹配,这会影响无障碍访问,也可能导致组件识别异常:

  • 第一个标签按钮的id是excel-tab1,但对应面板的aria-labelledby写的是excel1
  • 第二个标签按钮的id是excel-tab2,对应面板的aria-labelledby写的是excel2

修改后正确的面板代码:

<div class="tab-pane fade show active" id="excel1" role="tabpanel" aria-labelledby="excel-tab1">
<div class="tab-pane fade" id="excel2" role="tabpanel" aria-labelledby="excel-tab2">

修复后的完整代码示例

<html>
    <head>
        <title>Excel Viewer</title>
        <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous">
        <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.25/css/dataTables.bootstrap5.css">
    </head>
    <body>
        <div class="container">
            <br>
            <ul class="nav nav-tabs" id="fileTab" role="tablist">
                <li class="nav-item" role="presentation">
                    <button class="nav-link active" id="excel-tab1" data-bs-toggle="tab" data-bs-target="#excel1" type="button" role="tab" aria-controls="excel1" aria-selected="true">9. Defined Data Objects.xlsx</button>
                </li>
                <li class="nav-item" role="presentation">
                    <button class="nav-link" id="excel-tab2" data-bs-toggle="tab" data-bs-target="#excel2" type="button" role="tab" aria-controls="excel2" aria-selected="false">9. Defined Data Objects_2.xlsx</button>
                </li>
            </ul>
            <div class="tab-content" id="tabContent">
                <div class="tab-pane fade show active" id="excel1" role="tabpanel" aria-labelledby="excel-tab1">
                    <br>
                    <table border="1" class="dataframe table table-striped table-bordered table-hover" id="data1">
                        <thead>
                            <tr style="text-align: right;">
                                <th>Name</th>
                                <th>Data Attribute</th>
                                <th>Default Expression</th>
                                <th>Override Expression</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                                <td>ACCT_AMT_AVLBL_AFTR_PRCG_NMRC</td>
                                <td>decimal128(18, 0)</td>
                                <td>pydecimal(left_digits=18,right_digits=0)</td>
                                <td></td>
                            </tr>
                        </tbody>
                    </table>
                    <br>
                </div>
                <div class="tab-pane fade" id="excel2" role="tabpanel" aria-labelledby="excel-tab2">
                    <br>
                    <table border="1" class="dataframe table table-striped table-bordered table-hover" id="data2">
                        <thead>
                            <tr style="text-align: right;">
                                <th>Name</th>
                                <th>Data Attribute</th>
                                <th>Default Expression</th>
                                <th>Override Expression</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                                <td>ACCT_AMT_AVLBL_AFTR_PRCG_NMRC</td>
                                <td>decimal128(18, 0)</td>
                                <td>pydecimal(left_digits=18,right_digits=0)</td>
                                <td></td>
                            </tr>
                        </tbody>
                    </table>
                    <br>
                </div>
            </div>
            <br>
        </div>
        <script type="text/javascript" charset="utf8" src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
        <!-- 新增Bootstrap JS文件 -->
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-gtEjrD/SeCtmISkJkNUaaKMoLD0//ElJ19smozuHV6z3Iehds+3Ulb9Bn9Plx0x4" crossorigin="anonymous"></script>
        <script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.25/js/jquery.dataTables.js"></script>
        <script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.25/js/dataTables.bootstrap5.js"></script>
        <script>
            $(document).ready(function () {
                for (let i = 1; i <= 2; i++) {
                    $(`#data` + i).DataTable();
                }
            });
        </script>
    </body>
</html>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 16:27:38