8

这是一个例子:

<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 做到这一点?

4

4 回答 4

25

Ifmydiv是对您正在查看的元素的引用:

var n = $(mydiv).index('.create-q');

将给出该 div 的索引,因为它们是从零开始的,也恰好是前面 div 的数量。

.prevAll()此不同的是,无论 div 是否具有共同的父级,它都会起作用。

于 2012-05-31T11:28:24.837 回答
3

您可以使用 jquery 的prevAll方法,

如果currentelem是对您的元素的引用,那么,

$(currentelem).prevAll().length 

会给你在同一个父或容器中你的元素之前的元素数量。

于 2012-05-31T11:28:32.910 回答
0

如果您有目标元素,只需执行以下操作:

$(this).prev(".create-q").length$(this).next(".create-q").length

于 2012-05-31T11:29:12.887 回答
-1

您可以使用 jQuery 循环遍历选定的元素

参考示例

参考 jQuery

jsfiddle 演示

<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);

}
于 2012-05-31T11:42:36.187 回答