2010-12-03 9 views
1

がありません私はカルーセルの種類の並べ替えが必要なHTML要素の数。ループトラフjQueryの要素と図のように並べ替え

<div>1</div> 
<div>2</div> 
<div>3</div> 
<div>4</div> 
<div>5</div> 
<!-- etc --> 

のは、例えば、私は13のdivの私はソートする必要があるのを持っている、としましょう:

は、次のようなのdivの一覧です想像してみてください。

alt text

いけないが、あまりにもそれは私が示してるだけアクティブアイテムです、ハイライトさ8で気が紛れる:以下が行われなければなりません。

私はかなりたぶん私は長すぎるか、試してみました、あまりにも多くの選択肢のための事を見つめてきた、それを把握することはできません。

編集: イラストは多分少し邪魔です。

私が望む結果は次のとおりです。

<div>1</div> 
<div>3</div> 
<div>5</div> 
<div>7</div> 
<div>9</div> 
<div>11</div> 
<div>13</div> 
<div>2</div> 
<div>4</div> 
<div>6</div> 
<div>8</div> 
<div>10</div> 
<div>12</div> 
+0

あなたは2列でそれをソートするつもりですか?または、各divの位置を設定したいだけですか? – WaiLam

+0

各divを配置します。 – dubbelj

+0

「jQuery要素」はどういう意味ですか? –

答えて

3

は、ちょうど:oddものを取り、このような.appendTo()を使用して、最後にそれらを追加し、<div id="container">を言います:

$("#container div:odd").appendTo("#container"); 

You can try it out here。彼らが何か他のものに入っているなら、それは同じ概念で、奇妙なものをとり、最後にそれらを親に追加してください。

+0

非常に簡単で、非常に効果的です! – dubbelj

3

はあなたが二列#row1#row2を持っている想像してみてください。そして、あなたは元のコレクションを横断することができます(#collectionブロックで)この方法:彼らは、コンテナにあった場合

var $row1 = $('#row1'); 
var $row2 = $('#row2'); 
$('#collection div').each(function(i) { 
    if (i % 2) { 
     $(this).appendTo($row2) 
    } else { 
     $(this).appendTo($row1) 
    } 
}); 
+0

です。これは動作しますが、これは '#rowX'セレクタ* each * iterationを実行するだけでなく、毎回余分なjQueryオブジェクトを生成します。操作、または '.each()'ループを避けてください:) –

+0

あなたは絶対に正しいです。実際、あなたとピーターの答えははるかに良く、微妙です。 – vtambourine

0

どのようにループの2を使用してはどうですか?

for(var i=0, j=yourList.length/2; i<j; i+=2){ 
    doSomething(yourList[i]); 
} 
for(var i=1, j=yourList.length/2; i<j; i+=2){ 
    doSomething(yourList[i]); 
} 
0
var r1 = new Array(); 
var r2 = new Array(); 
$("DIV","#in").each(function(){ 
    if(parseInt($(this).text()) % 2 == 1) 
     r1.push($(this)); 
    else 
     r2.push($(this)); 
}); 
$.fn.append.apply($("#in"), $.merge(r1,r2)); 

出力は次のようになります。

<div>1</div> 
<div>3</div> 
<div>5</div> 
<div>7</div> 
<div>9</div> 
<div>11</div> 
<div>13</div> 
<div>2</div> 
<div>4</div> 
<div>6</div> 
<div>8</div> 
<div>10</div> 
<div>12</div> 
関連する問題