@Genri_Rus

Как добавить дополнительные объекты в localStorage?

Всем доброго времени суток!

Имеется следующий пример кода:

<div>
  <p><input class="check" id="check-option-1" name="name" type="checkbox">
  <label for="check-option-1"></label>
  </p>
  <p class="copy">1</p>
  <p class="copy-2">1.1</p>
</div>
<div>
  <p><input class="check" id="check-option-2" name="name" type="checkbox">
  <label for="check-option-2"></label>
  </p>
  <p class="copy">2</p>
  <p class="copy-2">2.1</p>
</div>
</div>

<div class="modal">Здесь ничего нет</div>


function actChecked(id) {
  const checkedName = 'checked';
  let current = localStorage.getItem(checkedName);

  if (id === 'ready') {
    if (current !== null) {
      JSON.parse(current).forEach(v => {
        $('#' + v).prop('checked', true);
      });
    }
    return;
  }

  if (current === null) {
    return localStorage.setItem(checkedName, JSON.stringify([id]));
  }

  let arrCurrent = JSON.parse(current);
  const iof = arrCurrent.indexOf(id);

  if (iof !== -1) {
    arrCurrent.splice(iof, 1);
    return (arrCurrent.length === 0) ? localStorage.removeItem(checkedName) : localStorage.setItem(checkedName, JSON.stringify(arrCurrent));
  } else {
    arrCurrent.push(id);
    return localStorage.setItem(checkedName, JSON.stringify(arrCurrent));
  }
}

function getHTML(){
		const checkedName = 'local';
		const current = localStorage.getItem(checkedName);

		if (current !== null) {
			
  let id = $('.check').attr('id');
	let name = $('.copy');
	let descr = $('.copy-2');

	const objCurrent = ({
		id: id,
		name: name,
		descr: descr
	});
			
			localStorage.setItem(checkedName, objCurrent );
			
			const arrCurrent = JSON.parse(current);
			
			let mHTML = '';
			arrCurrent.forEach(id => {
				let replace = '';
				$('#' + id).parent().siblings(objCurrent).each(function() {
					replace += this.outerHTML.replace(/(<|<\/)p/g, '$1span');
				});
				mHTML += '<div class="item">' + replace + '</div>';
			})
			return mHTML;
		} else return;
	}

    $('body').on('change', '.check', function(){
    var modal = $('.modal');

    if ($('input').is(':checked')) {
        if (!modal.children().is('.item')) modal.html('');
    } else {
        modal.removeClass('modal-show').text('Здесь ничего нет');
    }
    
    if ($(this).prop('checked')) {
        modal.addClass('modal-show');
     }

    actChecked($(this).attr('id'));
    modal.html(getHTML());
});


Мне нужно добавить в localStorage объекты, которые записаны в objCurrent, а потом их вывести в:
<div class="modal">Здесь ничего нет</div>

В функцию actChecked в localStorage я записываю id, а в функции getHTML мне нужно добавить и сохранить в localStorage новые объекты и вывести их на страницу
  • Вопрос задан
  • 264 просмотра
Решения вопроса 1
Stalker_RED
@Stalker_RED
localStorage.setItem('ключ', 'значение')
localStorage.getItem('ключ')


https://developer.mozilla.org/ru/docs/Web/API/Storage
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы