Przełączanie atrybutów bez wartości

Załóżmy, że mamy zablokowany input i przycisk:

html<input id="elem" disabled>
<input id="button" type="submit">

Zróbmy tak, aby każde kliknięcie przycisku powodowało zmianę stanu inputa - ze zablokowanego na odblokowany i odwrotnie. Na początku pobierzmy referencje do naszych elementów do zmiennych:

javascriptlet elem   = document.querySelector('#elem');
let button = document.querySelector('#button');

A teraz zrealizujmy zamierzony plan:

javascriptbutton.addEventListener('click', function() {
  if (elem.disabled) {
    elem.disabled = false;
  } else {
    elem.disabled = true;
  }
});

Zadanie można jednak rozwiązać mniejszą ilością kodu:

javascriptbutton.addEventListener('click', function() {
  elem.disabled = !elem.disabled;
});
Задание 1

Wyjaśnij, jak działa podany kod.

Задание 2

Dany jest checkbox i przycisk. Zrób tak, aby każde kliknięcie przycisku prowadziło do zmiany stanu checkboxa.