某个班级之后可以计算div的数量吗?

时间:2014-09-06 21:04:17

标签: javascript jquery html

我的HTML结构如下

<div class="dateHeader">Yesterday</div>

<div class="trp" id="trp1"></div>

<div class="trp" id="trp2"></div>

<div class="trp" id="trp3"></div>

<div class="trp" id="trp4"></div>

<div class="dateHeader">9/1/2014</div>

<div class="trp" id="trp5"></div>

<div class="trp" id="trp6"></div>

<div class="trp" id="trp7"></div>

我希望做的是检测与单词&#34;昨天&#34;匹配的div文本,然后计算在该div之后但在下一个div&div; dateHeader&#39之前的所有div ;。所以基本上算上两个&#39; dateHeader&#39;之间的#dif。类。

这可能吗?

我也希望对那些停留在dateHeaders之间的div做一些动作(比如make CSS更改),但我假设一旦我们可以匹配这些div,我能够轻松操作它们吗?

3 个答案:

答案 0 :(得分:2)

使用:contains.nextUntil()

$('div.dateHeader:contains("Yesterday")').nextUntil('div.dateHeader').css('color','red')

<强> jsFiddle example

要计算,请使用:

$('div.dateHeader:contains("Yesterday")').each(function(){
    console.log ($(this).nextUntil('div.dateHeader').length)
})

答案 1 :(得分:1)

您可以过滤元素,将文本转换为小写。找到匹配项后,使用nextUntil / length获取后续元素的数量。

Example Here

$('.dateHeader').filter(function(){
    if($(this).text().toLowerCase().indexOf('yesterday') > -1){
        console.log($(this).nextUntil('.dateHeader').length);
        // Logs 4
    }
});

答案 2 :(得分:0)

您可以将Jquery下一个所有方法用作http://api.jquery.com/nextall/