12.07.2015 Views

Реактивные веб-сайты Николай Мациевский Евгений ...

Реактивные веб-сайты Николай Мациевский Евгений ...

Реактивные веб-сайты Николай Мациевский Евгений ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Практическое приложение319Не случайно они расположены именно в такой последовательности:они идут по сложности алгоритма выборки. В первом случае вызов функцииэквивалентен вызовуdocument.getElementById("id");Поскольку предполагается, что id уникальный, поиск проходит оченьбыстро, и если на странице есть два элемента с таким id, то найден будеттолько первый. Хотя в IE и тут сделали ошибку и до 7-й версии включительнов случае отсутствия элемента с таким id он вернет элемент, у которогосовпадает атрибут name.Во втором случае тоже все относительно просто:document.getElementsByTagName("tag");Получили все ноды с таким именем из документа, и все готово. И наудивление никаких ошибок, если не учитывать, что при запросеgetElementsByTagName(”*”) IE вернет и комментарии тоже.В третьем случае, если есть возможность, работу перехватываетdocument.getElementsByClassName("class");(Таблицу поддержки этой функции в браузерах можно посмотреть наquirksmode.org)Эту функцию поддерживают еще не все браузеры. Для остальныхприменяется совсем другой алгоритм: нужно получить абсолютно все ноды,потом обойти их циклом, проверяя имена классов, и если совпали, тодобавить в массив результата.var nodes = document.getElementsByTagName("*"), result = [];for (var i=0; i -1)result.push(nodes[i]);}Какой метод применять, определяется в самом начале при подключениибиблиотеки.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!