KWALIFIKACJA INF3 - CZERWIEC 2018

PYTANIE NR 34.
W języku JavaScript należy odwołać się do elementu zawartego w pierwszym paragrafie przedstawionego fragmentu strony HTML. Można to wykonać za pomocą funkcji

<body>
<p>pierwszy paragraf</p>
<p>drugi paragraf</p>
<p>trzeci paragraf</p>

A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
getElementsByTagName("p") zwraca kolekcję wszystkich elementów <p> w dokumencie w kolejności wystąpienia. Indeks [0] oznacza pierwszy element tej kolekcji, czyli pierwszy paragraf. Pozostałe propozycje wymagają istnienia id/klasy lub używają niepoprawnej nazwy metody.

Pełne wyjaśnienie:

W HTML pokazano kilka paragrafów <p> (pierwszy, drugi, trzeci). Jeśli chcemy w JavaScript odwołać się do elementu znajdującego się w pierwszym paragrafie, musimy najpierw wybrać element <p> odpowiadający temu akapitowi.

Wywołanie getElementsByTagName("p") służy do pobrania wszystkich elementów o wskazanej nazwie tagu, czyli wszystkich <p>. Wynikiem jest kolekcja elementów (lista) ułożona zgodnie z kolejnością w dokumencie. Ponieważ w JavaScript indeksowanie jest zerowe, zapis [0] wskazuje pierwszy znaleziony paragraf, czyli ten z treścią "pierwszy paragraf".

Odpowiedź getElementById("p1") byłaby poprawna tylko wtedy, gdyby w kodzie HTML istniał element z atrybutem id="p1". W podanym fragmencie takiego id nie widać, więc nie ma podstaw, by zakładać jego istnienie.

Odpowiedź getElement("p") jest niepoprawna w standardowym DOM – nie jest to typowa metoda do pobierania elementów po tagu.

Odpowiedź getElementsByClassName("p.1")[0] zakłada istnienie klasy p.1; dodatkowo zapis z kropką sugeruje mylenie konwencji selektorów CSS z argumentem metody DOM (tu podaje się nazwę klasy, bez składni selektora). Dlatego nie odpowiada wymaganiu wyboru pierwszego <p> w pokazanym fragmencie.

W praktyce podobny efekt można uzyskać także przez selektory CSS (np. wybór pierwszego <p>), ale w tym zadaniu testowana jest znajomość pobierania elementów po nazwie tagu oraz indeksowania kolekcji.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Zwraca kolekcję (listę) wszystkich elementów o danej nazwie tagu, tutaj wszystkich <p> w dokumencie. Elementy są ułożone w kolejności wystąpienia w HTML, więc pierwszy paragraf ma indeks 0.
W JavaScript większość kolekcji i tablic jest indeksowana od zera. To oznacza, że pierwszy element ma indeks 0, drugi indeks 1 itd. Dlatego do pierwszego <p> odwołujesz się przez [0].
Możesz użyć selektora CSS przez querySelector, np. document.querySelector("p"), co zwróci pierwszy pasujący paragraf. To alternatywa wobec pobierania kolekcji i indeksowania.
Nie. getElementById wyszukuje element wyłącznie po unikalnym atrybucie id. Jeśli w HTML nie ma elementu z id="p1", wynik będzie pusty (brak elementu), więc nie spełni zadania.
id powinno być unikalne w dokumencie, dlatego zwykle wskazuje jeden konkretny element. class może występować wielokrotnie, więc metody po klasie często zwracają kolekcję elementów. To wpływa na to, czy musisz użyć indeksu.
To zapis sugerujący składnię selektora CSS, ale metoda getElementsByClassName przyjmuje nazwę klasy (np. "lead"), a nie selektor z kropką. Dodatkowo zadanie dotyczy wyboru elementu <p>, a nie elementu o konkretnej klasie.
Wtedy kolekcja zwrócona przez pobranie po tagu będzie pusta i odwołanie się do indeksu [0] da undefined. W praktyce trzeba sprawdzić długość kolekcji (np. liczbę elementów) zanim zacznie się modyfikacje.
Po pobraniu elementu możesz ustawić jego treść, np. przez textContent. Najpierw pobierasz pierwszy <p> (indeks 0), a potem przypisujesz nową wartość do właściwości tekstu, aby podmienić zawartość.
querySelector jest wygodny, gdy chcesz użyć selektorów CSS (np. "article p:first-of-type" lub ".lead"). getElementsByTagName bywa prostsze, gdy interesuje Cię tylko nazwa tagu i nie potrzebujesz złożonych warunków.
Najczęstsze pomyłki to: mylenie id z klasą, używanie nieistniejących metod (np. "getElement"), zapominanie o indeksowaniu od zera oraz mieszanie składni selektorów CSS z argumentami metod DOM. Warto ćwiczyć na krótkich fragmentach HTML.
info

To pytanie poprawnie rozwiązuje 59% zdających egzamin. średnie

Eksperci podkreślają: "getElementsByTagName("p") zwraca kolekcję wszystkich elementów &lt;p&gt; w dokumencie w kolejności wystąpienia."

Źródła:

  • MDN Web Docs: Document.getElementsByTagName() - https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByTagName (dostęp: 2026-02-27)
  • MDN Web Docs: Document.getElementById() - https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementById (dostęp: 2026-02-27)
  • MDN Web Docs: Document.getElementsByClassName() - https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName (dostęp: 2026-02-27)

Materiały:

  • Dokumentacja MDN: DOM i metody selekcji elementów
  • Ćwiczenia praktyczne z querySelector/querySelectorAll oraz getElementsBy*
  • Powtórka: różnice id vs class vs tag w HTML/CSS/JS

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego