DOMTokenList#
DOMTokenList.item()#
Metoda item() zwraca słowo o określonym indeksie z uporządkowanego zestawu słów skojarzonego z danym zestawem słów DOM. W przypadku braku takiego słowa zwrócona zostanie wartość null.
Opis działania#
Samo wywołanie i poszczególne jego części najlepiej objaśnić na zapisie składniowym:
var token = domTokenList.item(index); var token = domTokenList[index]; // alternatywa z JS
gdzie poszczególne człony oznaczają:
- token - łańcuch znakowy reprezentujący zwrócone słowo lub wartość
null. - domTokenList - zestaw słów DOM będący obiektem kontekstu.
- index - liczba całkowita reprezentująca pozycję słowa w uporządkowanym zestawie słów.
Algorytm wywołania metody item(index) nie jest skomplikowany. Dla lepszego zrozumienia tematu prezentuję go w całości:
- Jeśli index jest równy lub większy od liczby słów w uporządkowanym zestawie słów skojarzonym z obiektem kontekstu, to zwróć wartość
null. - Zwróć słowo z pozycją wskazywaną przez index, które znajduje się w uporządkowanym zestawie słów skojarzonym z obiektem kontekstu.
W przypadku alternatywy z JS dla metody item() mamy do czynienia z pojęciem obsługiwanych indeksów właściwości.
Dla teoretycznego przykładu, gdzie łańcuchem znakowym jest "a b c d", będziemy mieli zestaw słów DOM z czterema słowami: słowem z indeksem 0 jest "a", słowem z indeksem 1 jest "b", słowem z indeksem 2 jest "c" i słowem z indeksem 3 jest "d".
Prosty przykład:
<script>
function showTokens(set){
return Array.prototype.slice.call(set).join(" ");
}
var html = document.documentElement; // referencja do elementu html
document.write(html.classList.constructor); // function DOMTokenList() { [native code] }
document.write("<br>");
document.write(html.classList.length); // 0
document.write("<br>");
document.write(html.classList.item(0)); // null
document.write("<br>");
document.write(html.classList[0]); // undefined, w IE null - błąd
document.write("<br><br>");
html.className = "Test1 Test2 Test3"; // ustawiamy wartość atrybutu class
document.write(showTokens(html.classList)); // Test1 Test2 Test3
document.write("<br>");
document.write(html.classList.length); // 3
document.write("<br><br>");
document.write(html.classList.item(0)); // Test1
document.write("<br>");
document.write(html.classList[1]); // Test2
document.write("<br>");
document.write(html.classList.item(2)); // Test3
document.write("<br><br>");
document.write(html.classList.item(5)); // null
document.write("<br>");
document.write(html.classList[5]); // undefined, w IE null - błąd
</script>W powyższym przykładzie widać wyraźnie, że jest drobna różnica między dwoma analogicznymi (w teorii) sposobami. Metoda item() dla indeksu równego lub większego od wartości atrybutu DOMTokenList.length zwraca wartość null, kiedy nawiasowe odwołanie [] zwraca wartość undefined. Nie dotyczy przeglądarki IE, która w drugim sposobie błędnie zwraca wartość null.
Metoda item() pojawia się dopiero w specyfikacji DOM4.
Składnia Web IDL#
interface DOMTokenList { getter DOMString? item(unsigned long index); }