Показать сообщение отдельно
  #12 (permalink)  
Старый 07.12.2011, 23:29
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Вот некропостеры-то.

Сообщение от Pattern
Согласен с тобой. Однако, во первых, не всегда какую либо задачу можно решить на лету. Во-вторых, когда данные нужны для обработки не в одном месте, на мой взгляд лучше вызвать 1 раз функцию и получить нужный результат, чем снова и снова перебирать 1 и тот же метод. В третьих, если нужно решить кроссбраузерно (мало ли что то пойдёт не так - привет IE, у него всегда всё не так, как у нормальных браузеров ), не придётся в десятках мест переписывать один и тот же метод изменения. Достаточно будет поправить искомую функцию.
Сколько интересных частных случаев. Зачем они приведены рядом с универсальной функцией?

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

Выводы: если по коллекции нужно пройтись один раз, или вообще нужен только один элемент, то не надо класть все элементы в массив. Если элементы перебирать нужно несколько раз, то лучше положить их в массив.
Ответить с цитированием