计算元素前的元素

时间:2012-05-31 11:25:20

标签: jquery

这是一个例子:

<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 个答案:

答案 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的选定元素循环

reference Example

reference JQuery

jsfiddle demo

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

}