Сохранить вложенный список
Доброго времени суток. Есть следующая задача, хранить в куках вложенный список. С обычным (без вложений) проблем не возникает, но вот как работать с вложенным пока не знаю. Очень прошу помощи.
Пример списка: <ul id="list"> <li>3rd floor</li> <li>2nd floor <ul> <li>3.1 floor</li> <li>2.1 floor</li> <li>1.1 floor</li> </ul> </li> <li>1st floor</li> </ul> |
Цитата:
это задачи одинаковой сложности и что на самом деле значит "сохранить список"? список чего? |
Сохраняю вот так
saveList: function() { var listObject = {}; var str = ' '; for (var count = 0; count < list.children.length; count++ ) { listObject.pos = count; listObject.val = list.children[count].innerHTML; str += JSON.stringify(listObject); } setCookie('list', str, 1); } Потом когда достаю из кук список, разбиваю Split`ом, создаю объект через JSON.parse и потом создаю список |
Ну и в принципе вопрос можно поставить немного иначе. Как сохранить, список в куки, а потом восстановить список из кук
|
Цитата:
Не могу понять как правильно обрабатывать детей (вложенный список). При сохранении JSON выглядит так: {"pos":0,"val":"3rd floor\n \n 3.1 floor \n 2.1 floor \n 1.1 floor \n \n "}{"pos":1,"val":"2nd floor"}{"pos":2,"val":"1st floor"} И восстановить список из этого JSON не получается. Я понимаю, что делаю что то не так, возможно в корне неправильно подошел к решению задачи. Поэтому и спрашиваю |
Сори, проверил - сохраняет нормально. Извиняюсь за беспокойство
|
вот оно как
логичнее кодировать список (либо его упрощенное представление) целиком в JSON, а не его куски -- тогда и будет "та же самая сложность", как я обещал var list = [1,2,3,[4,5],7,8,[9,10,11]]; var list_cookie = JSON.strinify(list); var list2 = JSON.parse(list_cookie); но если в результате будут символы ';' и '=', они могут сломать cookie -- их надо как-то экранировать либо весь результат закодировать в base64 а вообще я бы хранил такие большие структуры на сервере, но вам виднее |
Часовой пояс GMT +3, время: 21:20. |