Печать списка в DOM из массива в локальном хранилище - PullRequest
0 голосов
/ 24 октября 2018

Мне кажется, я очень близок к этому.

У меня есть контрольный список, который я отправляю в массив и устанавливаю в локальное хранилище.Я хочу перепечатать список из локального хранилища, когда браузер будет обновлен

<script>

    localStorage.clear();

    var Array_ToDoList = [];
    var toDoCount = 0;

    $("#add-to-do").on("click", function(event) {
      event.preventDefault();
      var toDoTask = $("#to-do").val().trim();

      Array_ToDoList.push(toDoTask)
      localStorage.setItem("STR_Tasks", JSON.stringify(Array_ToDoList))

      console.log(Array_ToDoList);

      var toDoItem = $("<p>");
      toDoItem.attr("id", "item-" + toDoCount);
      toDoItem.append(" " + toDoTask);

      var toDoClose = $("<button>");
      toDoClose.attr("data-to-do", toDoCount);
      toDoClose.addClass("checkbox");
      toDoClose.append("✓");

      toDoItem = toDoItem.prepend(toDoClose);
      $("#to-dos").append(toDoItem);
      $("#to-do").val("");
      toDoCount++;
    });

    $(document.body).on("click", ".checkbox", function() {
      var toDoNumber = $(this).attr("data-to-do");
      $("#item-" + toDoNumber).remove();
      Array_ToDoList.splice(toDoNumber, 1);
      console.log(Array_ToDoList);
      localStorage.setItem("STR_Tasks", JSON.stringify(Array_ToDoList))
    });


    var StoredToDos = Array_ToDoList.length;
    for (var i = 0; i < StoredToDos; i++) {
    $("#to-dos").append(localStorage.getitem(STR_Tasks[i]));    
    }

  </script>

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

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

согласно моему пониманию буквального кода:

  1. это 'localStorage.getItem', а не 'getitem'
  2. хранилище ключей в localStorage было "STR_Tasks", это просто строка, а не итеративный тип
  3. я думаю, что вы должны поместить объект 'todoItem' в 'Array_ToDoList', затем 'JSON.stringify', а затем перейти в localStorage

, наконец, выможно сделать так:

var tasks = JSON.parse(localStorage.getItem("STR_Tasks"));
for (var i = 0; i < StoredToDos; i++) {
    $("#to-dos").append(tasks[i]);    
}
0 голосов
/ 24 октября 2018

В первой строке скрипта вы очищаете все ключи в локальном хранилище, поэтому вы не можете использовать предыдущий список, вместо этого замените localStorage.clear () на:

var Array_ToDoList = JSON.parse(localStorage.getItem('STR_Tasks') || '[]');

Это сделает ваш скриптиспользовать сохраненные в настоящий момент STR_Tasks.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...