使用jQuery,想要计算在类之后发生的具有特定类的元素的数量

时间:2011-12-10 17:32:09

标签: jquery

我希望能够使用jQuery获取左列之后发生的右列数量。

例如:在以下结构中,结果应为

1st leftColumn = 3; 2nd leftColumn = 1等等......

<div class="panel leftColumn"></div>
<div class="panel rightColumn"></div>
<div class="panel rightColumn"></div>
<div class="panel rightColumn"></div>
<div class="panel leftColumn"></div>
<div class="panel rightColumn"></div>

注意:我的jQuery会找出div所属的列,并根据需要添加类名,因此如果解决方案适合我的代码,那就太棒了

var dataHolder = $j("div.panel").first().offset().left;

if($j(this).offset().left == dataHolder){
                $j(this).addClass("leftColumn");
            }
            else{
                $j(this).addClass("rightColumn");
            }

2 个答案:

答案 0 :(得分:1)

试试这个:

$('.leftColumn').each(function (i) {
    console.log('leftColumn ' + (i + 1) + ': ' + 
        $(this).nextUntil('.leftColumn', '.rightColumn').length); 
});

以下是 jsfiddle.net ,显示了它的实际效果。

答案 1 :(得分:1)

var a = $(".leftColumn").map(function() {
    return $(this).nextUntil(".leftColumn").length;
}).toArray();

http://jsfiddle.net/DBg2L/4/

返回一个数组[3,1],表示第一个为3,第二个为1,依旧等等。