Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Programowanie webowe JavaScript

W języku JavaScript metoda document.querySelectorAll(".menu") zwraca

A. pierwszy element dokumentu o klasie menu.
Źle. Pierwszy pasujący element zwraca querySelector, bez końcówki All.
B. listę (NodeList) wszystkich elementów dokumentu o klasie menu.
Dobrze. Metoda zwraca listę NodeList ze wszystkimi elementami pasującymi do selektora, tu z klasą menu.
C. liczbę elementów dokumentu o klasie menu.
Źle. Liczbę elementów daje dopiero właściwość length zwróconej listy.
D. element o identyfikatorze menu.
Źle. Kropka w selektorze oznacza klasę. Identyfikator wskazuje "#menu".

querySelectorAll przyjmuje selektor w składni CSS i zwraca wszystkie pasujące elementy w postaci listy NodeList. Kropka w ".menu" oznacza klasę, tak samo jak w arkuszu stylów, więc wynik zawiera każdy element z class="menu", w kolejności występowania w kodzie.

Po liście przechodzi się pętlą: document.querySelectorAll(".menu").forEach(el => el.style.color = "red");. Liczbę elementów daje właściwość length, a pojedynczy element indeks, np. [0]. Gdy nic nie pasuje, lista jest pusta, a nie null. Selektor może być dowolny: "ul li", "input[type=text]", "#menu a".

Lista zwrócona przez tę metodę jest statyczna: nie zmienia się, gdy później dodasz do strony kolejny element o tej klasie.

Pierwszy pasujący element zwraca bliźniacza metoda querySelector, bez końcówki All. To najczęstsza pomyłka, bo nazwy różnią się tylko jednym słowem, a wynik jest zupełnie inny: jeden obiekt albo lista wszystkich.

Element o identyfikatorze wskazuje selektor z krzyżykiem, "#menu", albo metoda getElementById("menu"). Kropka oznacza klasę, a nie identyfikator, dokładnie jak w CSS.

Liczby elementów metoda nie zwraca wprost. Daje ją dopiero właściwość listy: document.querySelectorAll(".menu").length. Kto chce policzyć elementy, musi więc najpierw pobrać listę, a potem odczytać jej długość.

Dobrze też pamiętać, że lista NodeList nie jest elementem. Zapis document.querySelectorAll(".menu").style.color = "red" nie zadziała, bo lista nie ma właściwości style. Trzeba przejść po elementach pętlą forEach albo wybrać jeden konkretny element z listy jego indeksem, np. [0].

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.