我对如何准确计算包含某个类的div的数量感到困惑。由于这里的DOM,我无法使用.parent()
或.child()
和.length
和.size()
无法工作,除非我找到一种方法从哪里开始计算和停止
例如
<div class="container">
<h2 class="12345">title<h2>
<div class="_row">...</div>
<div class="_row">...</div>
<div class="_row">...</div>
<h2 class="6789">title<h2>
<div class="_row">...</div> //count these
<div class="_row">...</div> //count these
<div class="_row">...</div> //count these
<div class="_row">...</div> //count these
<div class="_row">...</div> //count these
<div class="_row">...</div> //count these
<h2 class="01234">title<h2>
<div class="_row">...</div>
<div class="_row">...</div>
<div class="_row">...</div>
<div class="_row">...</div>
<div class="_row">...</div>
</div>
所以如果我的函数传入6789,我会想要在“.6789”之后包含类“_row”的div计数,但在下一个<h2>
停止计数。
我有点迷失在这里,因为他们在DOM中属于同一级别,所以我无法做$('.6789' > '._row')
或$('.6789').parent().find('._row);
如果有人可以帮助我获得我需要的准确计数非常感谢
答案 0 :(得分:7)
使用jQuery's nextUntil() function。链接页面的示例代码几乎完全符合您的要求。
答案 1 :(得分:0)
您可以从h2元素开始,然后使用nextUntil选择以下所有div:
var countOfDivs = $("h2.6789").nextUntil("h2","div._row").length;
nextUntil的第二个参数确保在标记开始包含除h2元素之间的div._row之外的其他元素时选择是稳定的