У меня есть код:
$(document).ready(function() {
var count = 1;
$("button").click(function() {
var inputVal = $('input').val();
$('div').append("<p>"+ inputVal +"</p>");
localStorage.setItem('pvalue'+count, inputVal);
$("input").replaceWith("<input id='num_" + count++ +"'/>");
})
var local = localStorage.getItem("pvalue"+ count);
$('div').append("<p>"+ local +"</p>");
})
Этот код сохраняет значения все ввода, но показывает только первый. Я не знаю, как отобразить все сохраненные теги p после обновления, может ли кто-нибудь мне помочь?
HTML:
<body>
<div class='mt-5 text-center'>
<input> <button>Add</button>
</div>
<script src='script.js'></script>
</body>



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Проблема связана с использованием вами переменной count. Это нормально при настройке данных, однако при повторной загрузке count будет возвращен к 1, и вы не узнаете явно, сколько записей вы сохранили.
Гораздо лучшей идеей было бы хранить массив в localStorage, который вы можете легко добавлять и извлекать. Попробуй это:
$(document).ready(function() {
$("button").click(function() {
var inputVal = $('input').val();
$('div').append("<p>" + inputVal + "</p>");
var pValues = JSON.parse(localStorage.getItem('pvalue')) || [];
pValues.push(inputVal);
localStorage.setItem('pvalue', JSON.stringify(pValues));
})
var pValues = JSON.parse(localStorage.getItem('pvalue')) || [];
var html = pValues.map(function(local) {
return '<p>' + local + '</p>';
}).join('');
$('div').append(html);
})
Без проблем, рад помочь. Если вам это нужно, вот рабочий пример в скрипке, поскольку SO не разрешает доступ к localStorage в фрагментах: jsfiddle.net/RoryMcCrossan/8q6ewbgL