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

Słowa kluczowe: Atrybut class w HTML Atrybut id w HTML DOM w JavaScript document.getElementById() w JavaScript

W języku JavaScript metoda getElementsByTagName odwołuje się do

A. elementu HTML o podanym id
B. elementów HTML o podanej nazwie znacznika
C. zmiennej numerycznej
D. klasy zdefiniowanej w CSS
Metoda getElementsByTagName w JavaScript służy do pobierania z dokumentu elementów HTML o konkretnej nazwie znacznika, czyli np. wszystkich elementów p, div, img albo input. Najczęściej wywołuje się ją na obiekcie document, na przykład document.getElementsByTagName('p'), co zwróci kolekcję wszystkich akapitów znajdujących się na stronie. To nie jest pojedynczy element, tylko tzw. HTMLCollection, czyli dynamiczna kolekcja elementów DOM. Dynamiczna oznacza, że gdy w dokumencie pojawi się nowy pasujący element, kolekcja może to od razu uwzględnić. W praktyce używa się tego przy manipulowaniu strukturą strony, np. do zmiany stylu wszystkich obrazków, odczytania zawartości wszystkich pól input albo masowego dodania klasy CSS do wybranych znaczników. Moim zdaniem warto zapamiętać różnicę między tą metodą a getElementById oraz getElementsByClassName, bo to bardzo częsty temat w zadaniach i w realnym kodzie. Dobrą praktyką w nowoczesnym JavaScript jest też znajomość querySelectorAll, ale getElementsByTagName nadal jest poprawną i standardową metodą DOM, opisaną w interfejsach przeglądarkowych zgodnych ze standardami W3C/WHATWG.
W tym pytaniu łatwo pomylić kilka różnych sposobów dostępu do elementów strony, bo ich nazwy są do siebie dość podobne. getElementsByTagName nie ma nic wspólnego ze zmienną numeryczną. Sama metoda nie odwołuje się do typu danych number ani nie pobiera wartości liczbowej z programu. Ona działa na strukturze DOM, czyli obiektowej reprezentacji dokumentu HTML w przeglądarce. Jeśli ktoś kojarzy JavaScript głównie ze zmiennymi, pętlami i obliczeniami, może błędnie założyć, że każda metoda coś liczy albo zwraca liczbę, ale tutaj chodzi o wybieranie węzłów dokumentu.

Nie chodzi też o klasę zdefiniowaną w CSS. Do wyszukiwania po klasie służy getElementsByClassName albo selektory CSS używane w querySelector i querySelectorAll, na przykład .menu lub .active. Tag name to nazwa znacznika HTML, a nie nazwa klasy. Różnica jest praktyczna: klasa opisuje grupę elementów nadaną przez autora strony, a znacznik określa typ elementu, np. p oznacza akapit, img obraz, a form formularz.

Nie należy tej metody mylić również z pobieraniem elementu po identyfikatorze. Do tego służy getElementById, zwykle zwracające jeden konkretny element, bo id w poprawnym dokumencie HTML powinno być unikalne. getElementsByTagName zwraca natomiast kolekcję wielu elementów tego samego typu. Z mojego doświadczenia ta pomyłka bierze się z podobnych nazw metod i z tego, że wszystkie dotyczą DOM. Najlepiej patrzeć na końcówkę nazwy: TagName oznacza nazwę znacznika, ClassName klasę, a Id unikalny identyfikator.

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.