Я изначально просил элегантный способ симулировать функциональность Array.concat()
по результатам функции getElementsByTagName
в IE или более старых браузерах, потому что казалось, что concat
не поддерживается. Только, конечно, это - причина, по которой возвращенный объект не поддерживал его, потому что он не является Array
. К сожалению,
getElementsByTagName
действительно возвращает a NodeList
. Таким образом, возникает реальный вопрос: какой хороший способ получить единый список всех элементов формы в документе (ввод, выбор, текстовое поле, кнопка) для их циклирования? Массив не требуется... один и тот же NodeList
тоже был бы идеальным.
Обратите внимание, что я использую IE6, поскольку это относится к корпоративной интрасети (в скором времени IE8).
Ответ, который я придумал, был:
-
Это стало проще и, вероятно, лучше всего просто поместить код в отдельную функцию и трижды вызвать его с помощью разных нодлистов, а не беспокоиться о хорошем способе вставить их вместе в один.
-
В конечном итоге я переключился на использование MooTools (после нескольких часов чтения при сравнении всех разных фреймворков). Итак, теперь получить массив элементов, которые я хочу, очень просто. Я рекомендую использовать фреймворк javascript, подобный этому, вместо того, чтобы люди избивали свои мозги, пытаясь найти лучший способ сделать что-то. Конечно, я все на самом деле изучаю необработанный язык (вот почему я так долго держал фреймворк), но это не всегда самый быстрый способ добиться успеха, что в бизнесе часто имеет значение как улучшение способности кодера с помощью языка.
Обновление: почти через 2 года я просто использовал jQuery и покончу с этим!