Я думаю, вы ищете prevUntil()
. prevUntil()
получает всех предыдущих братьев и сестер каждого элемента до, но не включает элемент, соответствующий селектору, узлу DOM или объекту jQuery.
Вот пример:
var xItem = 2;
$('.view-all').each(function(){
$(this).prevUntil('span','.block__item:lt(' + xItem + ')').css('display', 'block');
var numOfitem = $('.view-all').prevUntil("span", '.block__item').length;
xItem = (xItem + 3 <= numOfitem) ? xItem + 3 : numOfitem;
});
$(".view-all > a").click(function() { $(this).parent().prevUntil('span','.block__item').css('display', 'block');
$(this).hide();
});
body {
background: #eeeeee;
padding: 20px;
font-family: Helvetica;
}
.block__item{padding:5px 0 5px 0; margin-bottom:5px; background:#ffffff; width:300px; display:block; border-bottom:1px solid #ccc; display:none;}
.view-all{margin:10px 0 40px 0;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<!-- Section One Begin -->
<span>total items (2)</span>
<div class="block__item">
<div class="bock__item-content">
This is data
</div>
</div>
<div class="block__item">
<div class="bock__item-content">
This is data
</div>
</div>
<div class="block__item">
<div class="bock__item-content">
This is data
</div>
</div>
<div class="view-all">
<a href="javascript:;">View All</a>
</div>
<!-- Section two begin -->
<span>total items (3)</span>
<div class="block__item">
<div class="bock__item-content">
This is data
</div>
</div>
<div class="block__item">
<div class="bock__item-content">
This is data
</div>
</div>
<div class="block__item">
<div class="bock__item-content">
This is data
</div>
</div>
<div class="view-all">
<a href="javascript:;">View All</a>
</div>