Javascript 如何根据列表中是否有其他项显示按钮?

Javascript 如何根据列表中是否有其他项显示按钮?,javascript,jquery,Javascript,Jquery,我在为代码找到解决方案时遇到问题。我要让它工作,但我的问题是,第二个列表是不是最后一项,或者是否有 基本上,它看起来是这样的: <button id="multi-single-next" class="button">Single next</button> <button id="multi-next-multi-item" class="button">Multi item</button> <button id="hide" clas

我在为代码找到解决方案时遇到问题。我要让它工作,但我的问题是,第二个列表是不是最后一项,或者是否有

基本上,它看起来是这样的:

<button id="multi-single-next" class="button">Single next</button>
<button id="multi-next-multi-item" class="button">Multi item</button>
<button id="hide" class="button">Hide</button>
<ul class="multi-items">
<li class="single-data-item"><div class="data-item">1</div></li>
<li class="single-data-item"><div class="data-item">2</div></li>
<li class="single-data-item has-multi-items">
<ul class="pagnation-2">
   <li>3a</li>
   <li>3b</li>
   <li>3c</li>
</ul></li>
<li class="single-data-item"><div class="data-item">4</div></li>
<li class="single-data-item"><div class="data-item">5</div></li>
。多项目li{
显示:内联块;
列表样式:无;
}
.多项目li:非(:第一个孩子){
显示:无;
}
#多下一个多项目{显示:无}

下一个单曲
多项目
  • 1
  • 2
    • 3a
    • 3b
    • 3c
  • 3
  • 4

如果下一个
li
长度存在,您可以检查它

解决方案

$('#multi-next-multi-item').click(function() {
  const $item = $('ul.pagnation-2 li.active');
  const $next = $item.next();

  //Check if last item
  const $lastItem = $('ul.pagnation-2 li.active').next().length;

  $item.removeClass('active');
  $item.hide();

  if($lastItem == 0){

      //Get the parent
      const $li_parent = $item.parent().parent();

      const $single_next = $li_parent.next();

      $li_parent.removeClass('active');
      $li_parent.hide();

      $single_next.addClass('active');
      $single_next.show();
      $('#multi-single-next').css('display','block');
      $('#multi-next-multi-item').css('display','none');
  }else{
      $next.addClass('active');
      $next.show();
  }

});