我有一些div有4个其他div但是它们就像2行2列:
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做其他事情等等...
答案 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>