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); }