2011-12-10 6 views
0

jQueryを使用して左の列の後に発生する右の列の数を取得できます。例えばのためにjQueryを使用して、クラスの後に特定のクラスが発生する要素の数を数えたい

:以下の構造で、結果は

第一leftColumn = 3である必要があります。 第二leftColumn = 1のように...

注:私の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"); 
      } 
+0

..第ように第1手段3と配列[3,1]を返し'rightColumn'? –

+0

最初にleftColumnまたはrightColumnとしてマークされたクラスはありません.jQueryスクリプトを作成してdivがどの列に含まれているかを検出し、クラス「leftColum」または「rightColumn」を追加しました。 – neelmeg

+0

素晴らしいだから、 'leftColumn'でも' rightColumn'でもない他の要素が混在しているのでしょうか? –

答えて

1

以下の私のコードは、これを試してみてください:

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

ここでAでそれを示すjsfiddle.netですction。

+0

@ T.J.Crowder後で編集にコードを追加するという目的でjsfiddleを追加しました。 – JesseBuesking

+0

'@ JesseB':最初のことはそれほど重要ではありません。少なくとも、コード、理想的には説明、おそらく参照、および(オプションで)ライブリンクを投稿してください。改訂は素晴らしいですが、何らかの理由で改訂できなくなったとしても、最初の回答で十分であるはずです。人**は**あなたの最初の努力を見て、それに応じてコメントして投票します。 –

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

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

も ​​`leftColumn`またはであることで混合し、他の要素が存在し得る

関連する問題