![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 3 Всего: 191 |
привет. как можно реализовать следующее
В одном компоненте, есть элемент с айдишником, который заканчивается на Title, проблема в том, что айдишник не постоянен. В зависимости от того в каком виде предоставляется компонент меняется и айдишник. т.е. айдишки могут быть listTitle, detailTitle, imageTitle, tableTitle и т.д. Хочется единый механизм, который смог бы брать этот компонент по разным айдишникам. В этом и вопрос. Каким образом можно брать элемент по айдишнику, если он все время разный, но заканчивается всегда одинаково на Title |
|||
|
||||
| ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
медленно и печально, хотя и не так уж сложно.
примерно так. Только неплохо бы сначала ограничить как-нибудь фронт работ. Искать среди div'ов или внутри какого-нибудь элемента, к примеру. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
||||
|
|||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
Почему медленно? Имхо, в новых браузерах, где работает selector api, должно быть достаточно шустро (особенно если положиться на уникальность компонента и довериться document.querySelector-у)...
-------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
Медленно, потому что селектор , который я привел будет перебирать вообще все ноды в документе. Неужели этот querySelector уже настолько наворочен, насколько навернули свсой селектор в jQuery? В примерах на этот селектор я не встречал выборок по атрибутам и тем более по частям атрибутов. Я плохо искал? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
Я наивно полагаю, что selector api поддерживает все селекторы, кот. в принципе поддерживает браузер (кроме, возможно, динамических псевдоклассов и псевдоэл-тов). Как минимум, в ФФ 3.6.11, Хроме 7, Сафарях 5.0.2 и Опере 10.63
работает. И из 100k нод находит нужную за 10-50 мс. Медленее всех в ФФ — первый раз 40-50, последующие 20 (видимо, где-то что-то кеширует), в остальных новых браузерах порядка 10. Цикл по элементам (даже с известным именем) во всех браузерах на порядок дольше (120-400 мс). Насколько я в курсе, одно из нововведений свежеиспеченного jQuery 1.4.3 — переход на selector api везде, где только получается... UPD: в IE8 (в станд. режиме) тоже работает! Из тех же 100k выбирает за 60-80 мс, циклом — за 500 с лишком. Это сообщение отредактировал(а) SelenIT - 21.10.2010, 10:42 -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
Ok! Буду знать. Надо бы снова почитать jQuery в исходниках, а то как-то отстал уже от жизни -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 3 Всего: 191 |
SelenIT, ksnk, СПАСИБО !
Только задание изменилось Во-первых ExtJS. На нем написана такая конструкция
где, el - это элемент, внутри которого нужно достать элемент у которого класс заканчивается на Title. Даже если не знать ExtJS - интуитивно понятно Ext.get() - получает элемент, el.child() - берет детенка у родителя. Проблема в том, что эта конструкция перестала работать, т.к. появились новые классы, а десятки условий и проверок писать не хочется. Хочется иметь универсальный механизм. Это сообщение отредактировал(а) Samotnik - 21.10.2010, 11:45 |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
Судя по всему, нужно заменить get на select. Но вот понимает ли Ext-овский select селектор по части атрибута — сходу в гугле не нашел, надо проверять...
-------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |