Как откатить элемент в javascript

есть какой-то элемент(и код к нему):

<button id="MyButton"> что-то </button>
<script>
$('#MyButton').on('click',()=>{$('#MyButton').text('что-то другое')})//jquery
</script>

как мне сделать некий бэкап, что-бы какой-то функцией откатить элемент на тот момент, когда был произведено сохранение?

function save(element){/*магия*/}
function back(element,saved){/*магия*/}

Ответы (1 шт):

Автор решения: Pavel Grishaev

let button = document.querySelector('#MyButton');
let ctrlZ = document.querySelector('#MyCtrlZ');
let history = [];

button.addEventListener( 'click', ()=>{
  history.push({
    property: 'innerText',
    value: button.innerText,
  });
  button.innerText = `что-то другое ${Date.now()}`;
});

ctrlZ.addEventListener( 'click', ()=>{
  if( !history.length ) return;
  let historyItem = history.pop();
  button[historyItem.property] = historyItem.value;
});
<button id="MyButton">Сменить текст этой кнопки</button>
<button id="MyCtrlZ">Ctrl + Z</button>

→ Ссылка