Является ли индексация в NodeList через [] надежной и (в идеале) документированной? - PullRequest
0 голосов
/ 09 февраля 2012

Является ли индексирование в NodeList с использованием [] вместо item() полностью надежным кросс-браузером, и (отдельно) это где-нибудь документировано?Например:

var firstDiv = document.getElementsByTagName('div')[0];

Насколько я могу судить, самое современное определение интерфейса NodeList здесь здесь, в DOM3 , и самая последняя документация оПривязки JavaScript есть в DOM2 версии .Я ничего не вижу в индексировании в NodeList s с помощью [], но я вижу, что люди делают это все время (и я делал это сам часто, но всегда немного нервно).

Поэтому я опробовал его на множестве браузеров, включая IE6, и он работает лучше всех, где я пробовал (IE6, IE9, Chrome 16, Firefox 10, Firefox 5, Opera 11, Safari 5, Konqueror4.7, Богоявление 3.0, Мидори 0.4).Это замечательно, за исключением того, что у меня нет десятков браузеров с граничным регистром.

Поэтому я ищу информацию от всех, кто был на этом пути раньше.Это полностью надежный кросс-браузер, и в идеале это где-нибудь задокументировано?

Ответы [ 2 ]

3 голосов
/ 09 февраля 2012

От одна из ваших ссылок (мой акцент) :

Элементы в NodeList доступны через интегральный индекс , начиная с 0.

А из другая ссылка :

Объект NodeList имеет следующие методы:

Пункт (индекс) Этот метод возвращает объект Node. Индексный параметр имеет тип Number. Примечание. Этот объект также может быть разыменован с помощью квадратной скобки (например, obj [1]) . Разыменование с целочисленным индексом эквивалентно вызову метода item с этим индекс.

Так что да, это задокументировано. И надежный.

1 голос
/ 09 февраля 2012

Да. Это абсолютно надежно кросс-браузер. Либо так, либо большая часть JavaScript, которую я когда-либо писал, ломается, и jQuery тоже:)

Как минимум некоторую документацию см. В справочнике по Mozilla Developer Network для JavaScript :

Возвращает элемент в списке по его индексу или null, если он выходит за пределы. Эквивалент nodeList[idx]

...