lib.js – funkcia getAll()

Ďalšou užitočnou funkciou v knižnici lib.js je funkcia getAll(). Vráti všetky elementy s daným názvom. Elementy vyhľadáva v celom dokumente, alebo iba v zadanom elemente.

// C# syntax
NodeList getAll(DOMString tagName);
NodeList getAll(DOMString tagName, DOMString parent);
NodeList getAll(DOMString tagName, HTMLElement parent);

// Java syntax
getAll(tagName : DOMString) : NodeList;
getAll(tagName : DOMString, parent : DOMString) : NodeList;
getAll(tagName : DOMString, parent : HTMLElement) : NodeList;

getAll() zjednodučuje prácu s funkciou getElementsByTagName().

  • Ak je uvedený iba parameter tagName, funkcia vráti elementy z celého dokumentu, ktoré majú daný názov elementu.
  • Ak je uvedený parameter parent (či už ako text (DOMString) alebo referencia na element (HTMLElement)), funkcia vráti všetky elementy s daným názov, ktoré sa nachádzajú v elemente parent.

Ukážka: priradenie akcie všetkým odkazom v menu.

<script type="text/javascript">
addLoadEvent(Init);

function Init() {
  var a = getAll("a", "menu"); // získenie všetkých <a> v elemente s ID "menu"
  addEvent(a, "click", evt_a_click); // priradenie akcie
}

function evt_a_click(e) {
  ...
}
</script>
...

<body>
<p id="menu">
  <a href="/">Home</a> |
  <a href="/contact/">Kontakt</a> |
  <a href="/sitemap/">Mapa stránok</a>
</p>
...

Funkcia getAll() je veľmi praktická, keď potrebujeme pracovať so skupinou elementov s rovnakým názvom (tag name). Vrátenú kolekciu (pole) prvkov je možné ľahko cyklom prejsť a upraviť. Dĺžku poľa získame štandardnou vlastnosťou polí – length.