2012-02-19 16 views
-1

いくつかの要素を配列に格納する必要があります。これは各要素の位置に必要です。要素の順序を配列に格納する方法

以下の例は、私が何を保存したいかの簡単な例を示しています(すべてのページロードでIDが変わることに注意してください)。

は、私はそのすべての子を持つ各ボックスの親クラス(DIV)の位置を保存する

UPDATE:

主なアイデアはに構造(すべての要素のような位置)を取得することです

配列/文字列、私はそれがシリアル化と呼ばれると思います。ボックスの親クラスがここで見つけることができます並べ替え可能なブロック/ウィジェット(箱-1、箱-2など)同様の例のコンテナ あるhttp://james.padolsey.com/demo/tut-inettuts-with-cookies/

Basicの例

<div id="main-wrapper"> 

     <div class="box-parent"> 
      <div id="box-1"> content here </div> 
      <div id="box-2"> content here </div> 
      <div id="box-3"> content here </div> 
      <div id="box-4"> content here </div> 
      <div id="box-5"> content here </div> 
     </div> 

     <div class="box-parent"> 
      <div id="box-6"> content here </div> 
      <div id="box-7"> content here </div> 
      <div id="box-8"> content here </div> 
      <div id="box-9"> content here </div> 
      <div id="box-10"> content here </div> 
     </div> 

     <div class="box-parent"> 
      <div id="box-11"> content here </div> 
      <div id="box-12"> content here </div> 
      <div id="box-13"> content here </div> 
      <div id="box-14"> content here </div> 
      <div id="box-15"> content here </div> 
     </div> 

    </div>  
+0

を教えていない場合、私はあなたの質問を理解するように見えることはできません – elclanrs

+0

あなたの提案出力が配列ではない、それはオブジェクトです - あなたが使用できないため、無効なオブジェクト同じプロパティ名を2回(または2回目は最初のものを上書きします)、同じオブジェクトに2つの異なる "ボックス - 親"プロパティを保存することはできません。おそらく、 "main-wrapper"は実際の配列(角括弧 '[]')でなければならず、各要素は "box-parent"でしょうか? – nnnnnn

答えて

1

あなたの構造をすることはできません。 object['box-parent']は2つの異なる値を参照することはできません。

さまざまな方法でポジションを取得できます。あなたはまた、外部のカウンターで.box-parentの上に列挙、および構造にポジションを置くことができる

var elem; // given that elem refers to a "box-X", for instance $('#box-4'): 
elem.prevAll().length + elem.parent().prevAll('.box-parent').length*5 

var i=0; 
$('.box-parent').each(function() { 
    $(this).children().each(function() { 
     // i = the position 
     // ...    

     i++; 
    }); 
}); 
+0

構造体がソート可能なグリッドでないため、divの数が変更されます。 – user759235

+0

他の方法を使用してそれらを列挙します。 – ori

0

使用getElementsByTag各.box-parentは5つの要素を持っていると仮定すると、次の計算を適用することができます()、 "box-parent"のクラスを持たない要素を数え、 "position"を非 "box-parent"クラス要素の数と等しくする。

0

私はこれを正しく理解すればですから、この

<container> 
    <element class="parent"> 
     <!-- Content #1 --> 
    </element> 
    <element class="parent"> 
     <!-- Content #2 --> 
    </element> 
    <element class="parent"> 
     <!-- Content #3 --> 
</container> 

ような構造を持っていて、コンテンツ#1と要素が最初の要素であり、それは下向きに増加することを定義していると、あなたはその順序を保持したいと思います。

私はjQueryが受け入れ可能であると仮定しています。私が

// Something like this should work 
$("container").children(".parent") 
// [Element, Element, Element] 

Jsfiddle