Что вы можете сделать, это преобразовать ваш элемент в строку перед сохранением в localalstorage и преобразовать его обратно в объект после извлечения из localalstorage.
$('a').on('click', function(){
localStorage.setItem('link', JSON.stringify(this));
var retrievedObject = localStorage.getItem('link');
//do anything with the object from localstorage
console.log(JSON.parse(retrievedObject));
});
Или вам может понадобиться другой подход.Например, вы можете сохранить индекс выбранного элемента a в localalstorage и восстановить его по загрузке страницы, как показано на следующем рисунке
https://codepen.io/niklasp-the-looper/pen/Xxxyay?editors=1010
$('ul a').each(function(idx, element) {
$(element).on('click', function() {
localStorage.setItem('linkIdx', idx);
});
});
$('#get').on('click', function() {
var linkIndex = localStorage.getItem('linkIdx');
var element = $('a')[linkIndex];
console.log(element);
});
Надеюсь, вы поняли идею,Не стоит хранить больше, чем вам действительно нужно.Кроме того, сохранение объектов jQuery с функциями невозможно, как указано ниже.