vimes1984
vimes1984

Reputation: 1693

counts days inbetween then add class to those days with nested divs?

ok i have the following:

<div class="row">
    <div class="test">02/12/2013</div>
    <div class="test">03/12/2013</div>
    <div class="test">04/12/2013</div>
    <div class="test">05/12/2013</div>
    <div class="class1">06/12/2013</div>
    <div class="test"><07/12/2013/div>
    <div class="test">08/12/2013</div>
    <div class="test">09/12/2013</div>
    <div class="test">10/12/2013</div>
</div>
<div class="row">
    <div class="test">11/12/2013</div>
    <div class="test">12/12/2013</div>
    <div class="test">13/12/2013</div>
    <div class="test">14/12/2013</div>
    <div class="test">15/12/2013</div>
    <div class="test">16/12/2013</div>
    <div class="class2">17/12/2013</div>
    <div class="test">18/12/2013</div>
    <div class="test">19/12/2013</div>
    <div class="test">20/12/2013</div>
    <div class="test">21/12/2013</div>
</div>

In this case class1 and class2 are added dynamiclly using angularJS so how do i go about counting how many divs with a class of test there are between the two divs class1 class2?

Upvotes: 1

Views: 74

Answers (2)

Jan.J
Jan.J

Reputation: 3080

You mean something like this?

$(function(){
    var $class1 = $('.class1');
    var $class2 = $('.class2');
    var $afterClass1 = $class1.nextAll('.test');
    var $beforeClass2 = $class2.prevAll('.test');

    var count = $afterClass1.length + $beforeClass2.length;

    $('.count').html(count);    
});

http://jsfiddle.net/SAsty/

Edit: Better visualization http://jsfiddle.net/SAsty/3/

Edit 2:
Do something like:

var $allBetween =  $afterClass1.add($beforeClass2);
$allBetween.addClass('between');

Upvotes: 3

Jason P
Jason P

Reputation: 27022

Maybe something like this?

$divs = $('.row div');
var count = $divs.index($('.class2')) - $divs.index($('.class1')) - 1;

Upvotes: 0

Related Questions