@Genri_Rus

Правильное ли удаление из localStorage и сохранение?

Здравствуйте!

Как удалять из localStorage, если я убираю галочки с чекбоксов ?

Вот пример кода: ссылка

Код

const shoppingCart = (function() {
     let cart = [];
     const localName = 'local';

     function Item(id, p) {
        this.id = id;
        this.p = p;
        // console.log(p);
      }

      function saveCart() {
        localStorage.setItem(localName, JSON.stringify(cart));
      }

      function loadCart() {
        cart = JSON.parse(localStorage.getItem(localName));
        if (cart !== null) {
          for (var i in cart) {
            $('#' + cart[i].id).prop('checked', true);
           }
        } else if (cart === null) {
          cart = []
        }
      }
      
      loadCart();
  
      var obj = {};

			obj.addItemToCart = function(id, p) {
        var item = new Item(id, p);
        cart.push(item);
        saveCart();
			};
      return obj;
})();
    $('body').on('change', '.check', function(){
    let modal = $('.modal');

    if ($('input').is(':checked')) {
        if (!modal.children().is('.item')) modal.html('');
    } else {
        modal.removeClass('modal-show').text('Здесь ничего нет');
    }
    
    if ($(this).prop('checked')) {
        let id = $(this).attr('id');
        let p  = $(this).parent().siblings('.copy, .copy-2').text();
        shoppingCart.addItemToCart(id, p);
      
        modal.addClass('modal-show');
     }
});


В этом месте я вывожу сохраненные в localStorage id и если они сохраняются, то проставляю галочки чекбоксам

if (cart !== null) {
  for (var i in cart) {
	$('#' + cart[i].id).prop('checked', true);
   }
}

  • Вопрос задан
  • 99 просмотров
Решения вопроса 1
Raxen
@Raxen
TechLead Frontend Developer, Beeline
Вы перезаписываете значение итема в localStorage на пустой массив, в следующий раз при проверке есть ли такой итем в хранилище вы получите true, и его значение пустой массив, чтоб удалить из хранилища используйте метод removeItem

localStorage.removeItem(localName)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы