获取包含某个类的所有元素的长度,它们在div之前

时间:2017-09-11 11:30:51

标签: javascript jquery html

我有一些div有4个其他div但是它们就像2行2列:

这是一张图片,因为代码有点太长而无法添加为代码段。 picture

if(part.prev().hasClass("d") && part.prev().hasClass('d').length==1 && part.next().hasClass('d').length==0){
  part.prev().addClass('s').removeClass('d');
  part.remove();
}else{
  part.next().addClass('s').removeClass('d');
  part.remove();    
}

部分 - 是一些div 我使用prev()查看div之前是否有“d”类和next()来检查div之后是否有“d”类的元素。

并且part.prev().hasClass('d').length我想在div之前得到所有元素的长度,所以我可以说在做某事之前是否有一个元素,如果2做其他事情等等...

1 个答案:

答案 0 :(得分:0)

更新:比使用jQuery .prevAll()方法的答案中的OP评论更简单:

part.prevAll('.d').length

原始回答:

要获得具有预期类(.d)的一定数量的前导兄弟,请使用jQuery filter method检查索引是否低于所需元素(在我的示例中单击,到简化):

$(".d").on("click", function(event) {

  var index = $(this).index();
  var count = $(this).siblings(".d").filter(function(i, element) {
        return $(element).index() < index;
  }).length;
  
  console.log(count);
  
});
#setup div {
  width: 30px;
  height: 30px;
  margin-bottom: 2px;
  background: blue;
  cursor: pointer;
}
#setup div:hover { 
  background: green; 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="setup">
  <div class="d">1</div>
  <div>2</div>
  <div class="d">3</div>
  <div>4</div>
  <div class="d">5</div>
  <div class="d">6</div>
  <div class="d">7</div>
  <div class="d">8</div>
</div>