HTMLCollection#
Wstęp#
Interfejs HTMLCollection stanowi definicję Web IDL dla uporządkowanych kolekcji, których elementami mogą być tylko węzły elementowe. Obiekty typu HTMLCollection
są potocznie nazywane kolekcjami elementowymi # i skojarzone zostały z kilkoma podstawowymi zagadnieniami.
DOM4 wprowadza gruntowne zmiany dla tego interfejsu, gdyż w przeszłości był on definiowany jedynie dla elementów HTML w specyfikacji DOM Level 2 HTML. Obecnie kolekcje elementowe mogą występować w dowolnych dokumentach XML czy HTML. Nazwę "HTMLCollection" pozostawiono ze względów historycznych.
Kolekcja elementowa została wprowadzona w celu konkretyzacji kolekcji węzłowych, ale stanowi osobny rodzaj. Wynika to z faktu, że obiekty typu HTMLCollection
zawierają jedynie węzły elementowe, dla których przydatna i bardzo popularna okazuje się metoda HTMLCollection.namedItem()
. W przypadku pozostałych węzłów nie miałaby ona najmniejszego sensu, gdyż atrybuty id
i name
występują jedynie w elementach. Kolekcja elementowa jest zawsze aktualna, niezależnie od pobierającego ją polecenia.
Interfejs HTMLCollection nie dziedziczy z żadnego innego interfejsu w ogólnym ujęciu DOM, chociaż w środowisku JS obiekty implementujące ten interfejs będą dziedziczyły z prototypu najwyższego rzędu. Zachowanie takie jest czymś normalnym w przypadku języka ECMAScript.
Kolekcję elementową (lub jej pochodną) można uzyskać za pomocą poleceń zawartych w poniższej tabeli:
Właściwości HTMLCollection#
Nazwa | Opis |
---|---|
HTMLCollection.length | Zwraca liczbę węzłów elementowych zawartych w danej kolekcji elementowej. |
Metody HTMLCollection#
Nazwa | Opis |
---|---|
HTMLCollection.item() | Zwraca węzeł elementowy o określonym indeksie z danej kolekcji elementowej. |
HTMLCollection.namedItem() | Zwraca pierwszy węzeł elementowy o określonej wartości atrybutu id lub name z danej kolekcji elementowej. |
Składnia Web IDL#
[LegacyUnenumerableNamedProperties] interface HTMLCollection # { readonly attribute unsigned long length; getter Element? item(unsigned long index); getter Element? namedItem(DOMString name); };