2011-07-29 9 views
0

私は、可変長のより多くのDIV要素を含む一連のDIV要素を持っています。問題を単純化するサンプルコード...JS/jQ - コンテナ間で水平方向に移動

<div class="container"> 
<div class="inset"></div> 
<div class="inset"></div> 
<div class="inset"></div> 
<div class="inset"></div> 
<div class="inset"></div> 
</div> 
<div class="container"> 
<div class="inset"></div> 
<div class="inset"></div> 
<div class="inset"></div> 
<div class="inset"></div> 
<div class="inset"></div> 
<div class="inset"></div> 
</div> 
<div class="container"> 
<div class="inset"></div> 
<div class="inset"></div> 
<div class="inset"></div> 
</div> 

として、私は「インセット」のDIV間を移動するには、jQueryのeach()を使用しています。しかし、私は、最初のコンテナの最初のインセットDIVと、2番目のコンテナの最初のインセットDIVと、3番目のコンテナの最初のインセットDIVと、最初のコンテナの2番目のインセットDIVの間を移動する必要があることを認識しました。 、など。

問題は、どのようにこれを行うかわかりません。

これらを移動する主な目的は、あらかじめ設定されたパターンで背景色を変更することです。私は、コードの構造をやり直すことは可能だとは思わない。

どうすればよいですか?

+0

私はおかしいあなたがやろうとしているのか理解していない、あなたがラフスケッチのいくつかの並べ替えをモックアップすることができますので、私は – Seth

答えて

2

私のアプローチは最もエレガントではありませんが、それはできます。

ここで(Firebugの出力を見るためにインストールする必要があります)のサンプルです:http://jsfiddle.net/ceZkr/

var maxlength = 0; // first need to find container with the most insets. 
$('.container').each(function(index, val){ 
    var curlength = $(this).find('.inset').length; 
    if(curlength > maxlength) { 
     maxlength = curlength; 
    } 
}); 

console.log('our maxlength: ' + maxlength); 

for(var i = 0;i<maxlength; i++) { 
    $('.container').each(function(){ 
     var $box = $(this).find('.inset:eq('+i+')'); 
     if($box.length) { 
      console.log($box.text()); 
     } 

    }); 
} 
+1

またはChromeデベロッパーツール(ctrl-shift-i)またはIE(F12)の開発者ツールを使用することができます。しかし、答えのために+1。 – drneel

+0

Fiddleは何らかの理由で動作しますが、コードに実装しようとするとエラーが頻繁に発生します。私は今日後でより詳細な例を得ることを試みるでしょう。 – Meshaal

+0

私のjQueryファイル(http://stackoverflow.com/questions/6882810/jquery-this-find-and-selector-this-not-working#comment-8191276)を修正したら、Ahahahahaは素晴らしい作品です。<_ <。再度、感謝します! – Meshaal

関連する問題