javascript - 如何在具有重复 ID 的 Bootstrap 选项卡窗格之间切换
问题描述
我的页面中有两个选项卡控件,其中选项卡窗格具有相同的 ID。当我在第二个控件中切换选项卡时,内容不会更新并且仍然显示最后选择的窗格。我在某处读过 Bootstrap 处理通过 ID 切换(必须是唯一的)以使其工作,但我的用例具有重复的 ID 是不可避免的。
<div>
<ul class="nav nav-tabs" id="myTab1" role="tablist">
<li class="nav-item">
<a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-selected="true">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" id="profile-tab" data-toggle="tab" href="#profile" role="tab" aria-controls="profile" aria-selected="false">Profile</a>
</li>
</ul>
<div class="tab-content" id="myTabContent">
<div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab">Home 1</div>
<div class="tab-pane fade" id="profile" role="tabpanel" aria-labelledby="profile-tab">Profile</div>
</div>
</div>
<br />
<div>
<ul class="nav nav-tabs" id="myTab2" role="tablist">
<li class="nav-item">
<a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-selected="true">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" id="contact-tab" data-toggle="tab" href="#contact" role="tab" aria-controls="contact2" aria-selected="false">Contact</a>
</li>
</ul>
<div class="tab-content" id="myTabContent">
<div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab">Home 2</div>
<div class="tab-pane fade" id="contact" role="tabpanel" aria-labelledby="contact-tab">Contact</div>
</div>
</div>
以下是初始显示的示例屏幕截图:
主页选项卡具有相同的 ID。当我在第二组中选择联系人选项卡然后切换到主页选项卡时,内容仍然是联系人。
jQuery 或 JavaScript 中有没有一种方法可以让我通过 onclick 显示正确的选项卡?与此类似的东西:
$('#myTab2 a[href="#home"]').tab('show');
解决方案
使用类而不是 id,使用 javascript 或 jquery 定位 id 只会让您获得第一个实例,即具有该 id 的第一个元素。
推荐阅读
- macos - 检查 NSView 在其 NSWindow 中是否可见
- java - 使用 kotlin 测试用 java 编写的 android 应用程序
- python - PYSNMP v3 与 CISCO
- swift - RxSwift - 链接 Observables 和 Singles
- django - 我们可以在 pythonanywhere 的项目主机中使用 factory_boy
- laravel - 在十月 CMS 中单击类别时显示属于该类别的子类别
- kubernetes - 如何将 docker-compose 转换为 kubernetes?
- rest - Acumatica REST API - 删除 SalesOrderDetail
- android - SharedPreferences - 您必须使用带有自定义 SharedPref 类的 strings.xml 文件吗?
- scala - dataframe.select,从文件中选择数据框列