javascript - 如何将类添加到下两个元素并从当前两个元素中删除?

标签 javascript jquery

我想将事件类添加到接下来的两个里,并从当前的这两个事件类中删除。

<ul class="bottomNavi_ul clearfix">
    <li class="active"><a href="#">BUSINESS</a></li>
    <li class="active"><a href="#">DESIGN</a></li>
    <li><a href="#">INTERIOR</a></li>
    <li><a href="#">TECHNOLOGY</a></li>
    <li><a href="#">SAFETY</a></li>
    <li><a href="#">INFORMATION</a></li>
</ul>

我尝试了不同的方法,但找不到任何解决方案

$('.bottomNavi_ul li:nth-child(1), .bottomNavi_ul li:nth-child(2)').addClass('activeNavLi');
$("#nextLi").click(function() {
  var nextEle = $(".bottomNavi_ul li").nextAll('.activeNavLi').length;
  if (nextEle == 4) {
    $('.bottomNavi_ul li:nth-child(1), .bottomNavi_ul li:nth-child(2)').removeClass('activeNavLi');
    $('.bottomNavi_ul li:nth-child(3), .bottomNavi_ul li:nth-child(4)').addClass('activeNavLi');
  }
});

最佳答案

使用nextAll():lt()

$('ul .active')
  .removeClass('active')
  .last()
  .nextAll(':lt(2)')
  .addClass('active')
.active a {
  color: red
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<ul class="bottomNavi_ul clearfix">
  <li class="active"><a href="#">BUSINESS</a></li>
  <li class="active"><a href="#">DESIGN</a></li>
  <li><a href="#">INTERIOR</a></li>
  <li><a href="#">TECHNOLOGY</a></li>
  <li><a href="#">SAFETY</a></li>
  <li><a href="#">INFORMATION</a></li>
</ul>

关于javascript - 如何将类添加到下两个元素并从当前两个元素中删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58081565/

相关文章:

javascript - 更改输入图标并删除以前的图标(Jquery)

javascript - 如何在 Angular 6 的组件模板中呈现超链接?

javascript - 使用Javascript在iPad中完成下载后播放音频文件

jquery - IE6不支持jquery Accordion

javascript - Backbone : Feed JSON in a variable instead of fetching through URL

javascript - 如何在我的网站上添加 "Add to Favorites"按钮或链接?

javascript - 未捕获的异常 : out of memory in Ajax Process

javascript - 使用 Django 检查 HTML 中的数据库元素不为空

javascript - 如何启动:hover when clicking on a separate link?

javascript - jQuery - 设置 var - 多个 Ul - 为每个 ul 定位相同的 li child