Localstorage搜索多个值的历史记录

时间:2018-01-06 15:46:52

标签: javascript jquery html5 local-storage

我对此代码有疑问:

 $('#hledat').click(function() {

  var test = $('#mesto').val();
  localStorage.setItem("test", test);
  });

  $('#val').text(localStorage.getItem("test"));  

它运作良好,但我需要创建多个搜索历史记录 - 例如,最近5次搜索 - 并显示它们。像这样,但它只显示最后一次搜索。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

localStorage一次只存储一个键/值对。如果要在单个键中存储多个值,并按顺序,可以在localStorage中放置一个序列化数组,您可以根据需要进行反序列化和修改。试试这个:

$('#hledat').click(function() {
  addToHistory($('#mesto').val());
});

$('#val').text(getHistory()[0] || ''); // shows latest item

var getHistory = function() {
  return JSON.parse(localStorage.getItem("test")) || [];
}

var addToHistory = function(value) {
  var history = getHistory();
  history.unshift(value);
  localStorage.setItem('test', JSON.stringify(history.slice(0, 5)));
}