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: Tworzenie stron WWW Programowanie webowe JavaScript

W języku JavaScript metoda document.querySelector('.menu') zwraca

A. pierwszy element HTML o klasie menu
B. wszystkie elementy HTML o klasie menu
C. element HTML o identyfikatorze menu
D. regułę CSS zdefiniowaną dla klasy menu
Metoda document.querySelector('.menu') zwraca pierwszy element HTML pasujący do podanego selektora CSS, czyli w tym przypadku pierwszy element mający klasę menu. Kropka przed nazwą oznacza selektor klasy, tak samo jak w CSS: .menu { ... }. Jeżeli w dokumencie masz kilka elementów z class='menu', JavaScript nie zwróci ich wszystkich, tylko ten pierwszy znaleziony w kolejności występowania w drzewie DOM. Moim zdaniem to jedna z najwygodniejszych metod do szybkiego pobrania elementu, np. gdy chcesz dodać klasę, zmienić tekst albo podpiąć obsługę kliknięcia: document.querySelector('.menu').classList.add('active'). W praktyce trzeba jednak uważać, bo jeśli element nie istnieje, metoda zwróci null i dalsze odwołanie, np. do classList, spowoduje błąd. Dobrą praktyką jest więc sprawdzenie wyniku przed użyciem. W standardowym programowaniu front-endowym querySelector działa na selektorach CSS, więc można podawać też np. '#header', 'nav ul li' albo 'button.primary'.
W tym pytaniu najłatwiej pomylić znaczenie selektorów CSS używanych w JavaScript. document.querySelector('.menu') nie pobiera wszystkich elementów z klasą menu, bo od tego jest metoda document.querySelectorAll('.menu'), która zwraca kolekcję NodeList. querySelector działa inaczej: zatrzymuje się na pierwszym elemencie pasującym do selektora. To jest bardzo ważne przy dynamicznych stronach, gdzie kilka przycisków, kontenerów albo pozycji nawigacji może mieć tę samą klasę. Jeśli ktoś oczekuje listy elementów, a użyje querySelector, skrypt będzie działał tylko na jednym elemencie i czasem trudno to potem zauważyć. Znak kropki w selektorze nie oznacza identyfikatora. Identyfikator w CSS i w querySelector zapisuje się przez znak #, czyli element o id='menu' pobralibyśmy przez document.querySelector('#menu'). To częsty błąd, bo nazwy klas i identyfikatorów bywają podobne, ale ich rola w DOM jest inna. Klasa może wystąpić wielokrotnie, id powinno być unikalne w dokumencie. Metoda ta nie zwraca też reguły CSS. Ona pracuje na drzewie DOM, czyli na elementach HTML, a nie na arkuszach stylów. Reguły CSS są analizowane przez silnik przeglądarki osobno, a dostęp do nich odbywa się innymi mechanizmami, na przykład przez document.styleSheets, choć w normalnych projektach rzadko się to robi bez potrzeby. Z mojego doświadczenia najlepiej zapamiętać prostą zasadę: querySelector przyjmuje selektor jak w CSS, ale zwraca tylko pierwszy pasujący element.

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.