【发布时间】:2019-10-18 17:21:53
【问题描述】:
假设您有一个包含项目的列表
<ul class = "tabs">
<li class = "tab tab1 active">
<li class = "tab tab2">
<li class = "tab tab3">
</ul>
这用于在您拥有的 div 中显示内容
<div class = "tabs">
<div class = "tab tab1 active">
<div class = "tab tab2">
<div class = "tab tab3">
</div>
我试图弄清楚如何在ul 列表中选择一个选项卡,使其div 设置为active 和以前的active div 和ul 有它们的active 类删除。
有没有等价的
$(li. has tab in class name).addClass('active' if not already);
$(li. has tab in class name but the ones I didn't select).removeClass('active');
lis = $(li.tab);
$(div.has tab in class name).each(set class same as corresponding li);
或者我应该以某种方式使用id 来处理这类事情吗?
真的很好奇!这样做的专业方法是什么?
谢谢!
编辑:
似乎有这样的工作:
$('li.tab').on('click', function() {
var ind = $(this).index();
$(this).addClass('active').siblings().removeClass('active');
$('div.tab').eq(ind).addClass('active').siblings().removeClass('active');
});
在这里看到了那个方法:Jquery addclass/removeclass on click
【问题讨论】:
-
获取所有
.tabs,将.active从所有.active中删除,添加到选定的一个(.index()+.eq()) -
感谢您的建议。不确定如何实现,但找到了这个解决方案 $(this).addClass('active').siblings().removeClass('active');这是我在这里看到的工作:stackoverflow.com/questions/13295982/…
-
您不需要任何 jQuery。请参阅下面的答案,它已经完全正常工作,只需要样式。
-
好的,试试看!我的类名有额外的类,所以我想我只需要修改,以便我使用某种包含语法的类。
-
我回答的重点是表明您可能不需要大部分课程,也不需要 jQuery。
标签: jquery