[英]Add and Remove Class from multiple elements with jQuery
I have a tab navigation that sits above and below a block of content.我有一个标签导航,位于内容块的上方和下方。 I want the active tab to be highlighted by using the class active-tab
.我希望使用 class active-tab
突出显示活动选项卡。 By default, the first tab is the active tab.默认情况下,第一个选项卡是活动选项卡。 When clicking on one of the other tabs, I want that tab to be highlighted as the active tab.单击其他选项卡之一时,我希望该选项卡突出显示为活动选项卡。
My HTML structure looks like this我的 HTML 结构看起来像这样
<ul class="tab-navigation">
<li class="tab active-tab" rel="tab1">First tab</li>
<li class="tab" rel="tab2">Second tab</li>
<li class="tab" rel="tab3">Third tab</li>
</ul>
<div>
<div class="tab_container">
<div id="tab1" class="tab_content">Some Content</div>
<div id="tab2" class="tab_content">Some Content</div>
<div id="tab3" class="tab_content">Some Content</div>
</div>
</div>
<ul class="tab-navigation">
<li class="tab active-tab" rel="tab1">First tab</li>
<li class="tab" rel="tab2">Second tab</li>
<li class="tab" rel="tab3">Third tab</li>
</ul>
The jQuery code looks like this: jQuery 代码如下所示:
$(".tab_content").hide();
$(".tab_content:first").show();
$("ul.tab-navigation li").click(function() {
$(".tab_content").hide();
var activeTab = $(this).attr("rel");
$("#"+activeTab).fadeIn();
$("ul.tab-navigation li").removeClass("active-tab");
$(this).addClass("active-tab");
});
The jQuery code above works but it only adds and removes the active-tab
class for the tab navigation that was used.上面的 jQuery 代码有效,但它只添加和删除了用于使用的选项卡导航的active-tab
class。 If I use the navigation above the content, it will only change the class for the tabs above the content but not for the ones below.如果我使用内容上方的导航,它只会更改内容上方选项卡的 class 而不会更改下方的选项卡。 However, I want it to update the class on both.但是,我希望它在两者上都更新 class。
As you are getting rel
value you can use this as a selector to add active class to required divs ie: $(".tab-navigation li[rel="+activeTab+"]")
.当您获得rel
值时,您可以使用它作为选择器将活动 class 添加到所需的 div 即: $(".tab-navigation li[rel="+activeTab+"]")
。
Demo Code :演示代码:
$(".tab_content").hide(); $(".tab_content:first").show(); $("ul.tab-navigation li").click(function() { $(".tab_content").hide(); var activeTab = $(this).attr("rel"); $("#" + activeTab).fadeIn(); $("ul.tab-navigation li").removeClass("active-tab"); //add class where rel matches $(".tab-navigation li[rel=" + activeTab + "]").addClass("active-tab"); });
.active-tab { color: red }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <ul class="tab-navigation"> <li class="tab active-tab" rel="tab1">First tab</li> <li class="tab" rel="tab2">Second tab</li> <li class="tab" rel="tab3">Third tab</li> </ul> <div> <div class="tab_container"> <div id="tab1" class="tab_content">Some Content1</div> <div id="tab2" class="tab_content">Some Content2</div> <div id="tab3" class="tab_content">Some Content3</div> </div> </div> <ul class="tab-navigation"> <li class="tab active-tab" rel="tab1">First tab</li> <li class="tab" rel="tab2">Second tab</li> <li class="tab" rel="tab3">Third tab</li> </ul>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.