我的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,我能够轻松操作它们吗?
答案 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
获取后续元素的数量。
$('.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/