2012-02-19 3 views
-1

Я хочу хранить некоторые элементы в массиве, мне нужно это для позиции каждого элемента.Как сохранить порядок элементов в массиве

В приведенном ниже примере показан простой пример того, что я хочу сохранить (обратите внимание, что идентификатор будет меняться при каждой загрузке страницы).

Я хочу, чтобы сохранить положение каждого коробчатого родительского класса со всеми своими детьми (Div)

UPDATE:

Основная идея заключается в том, чтобы получить структуру (так позиции всех элементов) в массив/строка, я думаю, что его называют сериализацией. В коробчатого родительские классы контейнеры для сортные блоков/виджетов (окно-1, коробка-2 и т.д.), аналогичный пример можно найти здесь http://james.padolsey.com/demo/tut-inettuts-with-cookies/

Базовый пример

<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

предложил Ваш вывод не является массивом, то объект - и неверный объект, потому что вы не можете использовать одно и то же имя свойства дважды (или если вы сделаете второй, то перезапишите первый), чтобы вы не могли хранить два разных свойства «box-parent» в одном и том же объекте. Возможно, «main-wrapper» должен быть фактическим массивом (квадратные скобки '[]'), причем каждый элемент является «box-parent»? – nnnnnn

ответ

1

Ваша структура не может быть: object['box-parent'] не может ссылаться на 2 разных значения.

Вы можете получить позицию различными способами. Если предположить, что каждый .box-parent имеет 5 элементов, можно применить следующий расчет:

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

Вы также можете перечислить через .box-parent с внешним счетчиком, и поставить позиции в структуру:

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

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

Нет структуры сортируемая сетка, поэтому количество div будет меняться. – user759235

+0

Итак, используйте другой метод, чтобы перечислить их. – ori

0

использования getElementsByTag(), подсчитайте элементы, которые не имеют класса «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

Смежные вопросы