这是一个例子:
<div class="create-q"></div>
<div class="create-q"></div>
<div class="create-q"></div>
<div class="create-q"></div> <-- im in this class : I want to know how many div with class "create-q" there is before this one. (3 in this example)
<div class="create-q"></div>
<div class="create-q"></div>
我知道如何计算,但不知道如何在达到指定的div后停止它。
如何使用jQuery执行此操作?
答案 0 :(得分:23)
如果mydiv
是您正在查看的元素的引用:
var n = $(mydiv).index('.create-q');
将给出该div的索引,因为它们从零开始也恰好是前面的div的数量。
与.prevAll()
不同,无论div是否具有共同父级,这都将起作用。
答案 1 :(得分:3)
您可以使用jquery的prevAll方法
如果currentelem
是您元素的引用,那么
$(currentelem).prevAll().length
会在同一个父元素或容器中为元素提供元素数量。
答案 2 :(得分:0)
如果您有目标元素,请执行以下操作:
$(this).prev(".create-q").length
和$(this).next(".create-q").length
答案 3 :(得分:-1)
你可以使用带有jQuery的选定元素循环
<div id="example">
<div class="create-q">1</div>
<div class="create-q">2</div>
<div class="create-q">3</div>
<div class="create-q">thisOne</div>
<div class="create-q">5</div>
<div class="create-q">6</div>
</div>
function example(thisOne) {
var count=0;
var hrefs = '';
$('#example div').each(function(idx, item) {
//alert(item); return object HTMLDivElement
hrefs += item.innerHTML+ '\n' ;
count+=1;
if(item.innerHTML==thisOne)
{
//this is what you want the nubmber of elements before thisOne
alert(count-1);
return 0;
}
});
window.alert(hrefs);
}