Ваш код работает нормально, единственная проблема в том, что при итерации каждого .row div вы ищете
$('.item').length
, который фактически будет искать все div с классом .item на всей странице, а не толькоВ существующей строке вы находитесь внутри, решение состоит в том, чтобы найти элементы внутри этой конкретной строки div, используя
$(this).find('.item').length
, поэтому ваш код должен быть
$('.row').each(function(){
var itemsCount = $(this).find('.item').length;
if (itemsCount % 3 == 2){
$(this).find('.item').last().addClass('col-lg-offset-4');
} else if (itemsCount % 3 == 1){
$(this).find('.item').last().prev().addClass('col-lg-offset-2');
}
});