document.getElementById()
, id | Uzyskujemy dostęp do elementu drzewa DOM - listy zadań
Na razie nasz UI (czyli to, co widzimy w przeglądarce - HTML, który napisaliśmy w poprzednim kursie) jest absolutnie statyczny. Owszem, mamy listę zadań, ale są one zakodowane w HTMLu i nie możemy z nimi nic zrobić jako użytkownicy.
Chcemy pobrać zadania z localStorage
, co już udało się nam zrobić w kursie JavaScript, i wyświetlić właśnie te zadania! Żeby to zrobić, musimy uzyskać dostęp do naszej listy HTML <ul>
z poziomu kodu JavaScript.
Możemy to zrobić na kilka sposobów, ale posłużymy się metodą document.getElementById()
.
Metoda document.getElementById()
, jak sama nazwa wskazuje, pozwala na uzyskanie dostępu do elementu drzewa DOM (czyli dowolnego znacznika) o określonym id
.
Nasza lista HTML nie ma przypisanego id
, więc musimy najpierw je dodać do kodu w pliku HTML, który stworzyliśmy w poprzednim kursie. W tagu otwierającym <ul>
dodaj id="tasks-list"
w ten sposób:
<!-- ... wcześniejszy kod HTML -->
<ul id="tasks-list">
<li>zrobić kawę <button>usuń</button></li>
<li>wypić jogurt <button>usuń</button></li>
<li>sprawdzić maila <button>usuń</button></li>
</ul>
<!-- ... dalszy kod HTML -->
Każdy tag może mieć unikalne id
, dzięki czemu możemy precyzyjnie uzyskać do niego dostęp z poziomu kodu JavaScript. id
powinno mieć opisową nazwę, podobnie jak nazwy zmiennych czy funkcji, w związku z tym naszą listę zadań nazwaliśmy "tasks-list"
.
Teraz, zapisz zmiany w pliku HTML, odśwież przeglądarkę i otwórz konsolę.
Możesz z ciekawości przejść do zakładki Elements
, by zobaczyć kod HTML Twojej strony - jak widzisz, przeglądarka "osadziła" nasz niekompletny kod w szablon pliku HTML, o czym wspominałem wcześniej. W tej zakładce możesz mieć podgląd drzewa DOM dowolnej strony www, ale także dodatkowej zawartości pliku HTML, jak np. skryptów JavaScript.
Powróćmy teraz do konsoli i spróbujmy uzyskać dostęp do listy zadań za pomocą document.getElementById()
na razie z poziomu konsoli:
const tasksList = document.getElementById("tasks-list");
console.log(tasksList);
Jak widzisz, w konsoli wyświetlił Ci się wycinek drzewa DOM, zawierający listę <ul>
, którą można rozwinąć i zobaczyć wszystkie elementy listy <li>
. Z kolei możesz teraz wpisać w konsoli po prostu tasksList.
i zobaczysz, że po kropce wyświetli Ci się długa lista dostępnych metod, które możesz zastosować do danego węzła (node) DOM, np. tasksList.children
, który wyświetli Ci tablicę zawierającą wszystkie "dzieci" danego węzła.
To wszystko oznacza, że właśnie poprawnie uzyskałeś/aś dostęp do HTMLa/ elementu DOM za pomocą właściwości id
, przypisałeś/aś ten element (listę) do JavaScriptowej zmiennej (a dokładniej stałej) tasksList
, w związku z czym możesz teraz manipulować tym węzłem - dodawać/ usuwać elementy listy (oraz robić całe mnóstwo innych rzeczy!).