javascript - JQuery 选择器每 3 个元素更改一次

标签 javascript jquery css

我正在使用 PHP 循环并在一个 ul 中创建多个 li。 问题是,当我点击前三个 li 之一时,我需要每隔四个 li 显示一次。

目前它只适用于前面的第一个 li :

  $('.last_news li').on('click', function(){

      $('+ .actu_details',this).toggleClass('expend');

  });

谁有线索

$('.last_news li').on('click', function() {

  $('+ .actu_details', this).toggleClass('expend');

});
last_news {
  padding: 35px
}

ul {
  padding-left: 0px;
  margin: 0;
  overflow: hidden;
}

ul li {
  list-style-type: none;
  cursor: pointer;
  float: left;
  width: 33%;
  height: 250px;
  background-color: red;
  margin-right: 0.5%;
  margin-bottom: 5px;
  color: #FFF;
  position: relative;
}

li:nth-of-type(3) {
  margin-right: 0;
}

li:nth-of-type(4n+7) {
  margin-right: 0;
}

li.actu_details {
  width: 100%;
  height: 0px;
  background-color: green;
  display: block;
}

li.actu_details.expend {
  height: 350px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<section class="last_news">
  <div class="contenu_grid">
    <ul>
      <li class="une_actu">Test</li>
      <li class="une_actu">Test</li>
      <li class="une_actu">Test</li>
      <li class="actu_details">
        Detail
      </li>
      <li class="une_actu">Test</li>
      <li class="une_actu">Test</li>
      <li class="une_actu">Test</li>
      <li class="actu_details">
        Detail
      </li>
      <li class="une_actu">Test</li>
      <li class="une_actu">Test</li>
      <li class="une_actu">Test</li>
      <li class="actu_details">
        Detail
      </li>
    </ul>
  </div>
</section>

最佳答案

您可以使用 nextAll() 来定位以下同级 actu_details 元素,然后使用 :first/:eq(0)/.eq(0)/.first() 以第一个 li

为目标
$('.last_news li').on('click', function () {
    $(this).nextAll('.actu_details:first').toggleClass('expend');
    //$(this).nextAll('.actu_details').eq(0).toggleClass('expend');
});

 $('.last_news li').on('click', function() {
   $(this).nextAll('.actu_details:first').toggleClass('expend');
 });
.last_news {
  padding: 35px
}

ul {
  padding-left: 0px;
  margin: 0;
  overflow: hidden;
}

ul li {
  list-style-type: none;
  cursor: pointer;
  float: left;
  width: 33%;
  height: 250px;
  background-color: red;
  margin-right: 0.5%;
  margin-bottom: 5px;
  color: #FFF;
  position: relative;
}

li:nth-of-type(3) {
  margin-right: 0;
}

li:nth-of-type(4n+7) {
  margin-right: 0;
}

li.actu_details {
  width: 100%;
  height: 0px;
  background-color: green;
  display: block;
}

li.actu_details.expend {
  height: 350px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<section class="last_news">
  <div class="contenu_grid">
    <ul>
      <li class="une_actu">Test</li>
      <li class="une_actu">Test</li>
      <li class="une_actu">Test</li>
      <li class="actu_details">
        Detail
      </li>
      <li class="une_actu">Test</li>
      <li class="une_actu">Test</li>
      <li class="une_actu">Test</li>
      <li class="actu_details">
        Detail
      </li>
      <li class="une_actu">Test</li>
      <li class="une_actu">Test</li>
      <li class="une_actu">Test</li>
      <li class="actu_details">
        Detail
      </li>
    </ul>
  </div>
</section>

Fiddle

关于javascript - JQuery 选择器每 3 个元素更改一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45304436/

相关文章:

javascript - 使用 Javascript 和 asp.net 的表可见性

javascript - Spotify API 创建临时播放列表未加载

html - 如何在网站上使用 media-imdb.com 图片?

html - Flexbox等列高设置主列高度?

html - 在 Angular js 中,如何在多选中使选定的选项加粗

javascript - AngularJS 自定义过滤器被调用两次

javascript - 什么是随机逻辑词法扫描器,什么是树遍历代码生成器?

jquery ui droppable 在鼠标指针处的文本区域中插入文本

jquery - AJAX表单如何显示加载gif

javascript - 如何在 primefaces 中使用 jQuery 启用/禁用复选框?