EASY - JavaScript-выборка по CSS1-3 склекторам
Представляю вашему вниманию выборку которая легко осуществляет поиск по CSS1-3 селекторам. Исходя из названия, можно понять что выборка мала, и это действительно так, из всех известных мне выборок, моя выборка меньше минимум в 2 раза! Наверное это её самая первая особенность!:D
Увы, но выборкой я уже не занимался давненько, точнее занимался, и это далеко не последняя версия, уже есть наброски гораздо более быстрой выборки! Объясню как она работает: <script type='text/javascript'> easy(selectors)[number] // Пример: easy('html:root body > div + span#exemple ~ [class$="xemple"]:checked')[0].style.color='red' </script> Список возможностей: // стандартный набор селекторов: * E[foo] E[foo=bar] E[foo~=bar] E[foo^=bar] E[foo$=bar] E[foo*=bar] E[foo|=bar] E:root E:nth-child(n) E:nth-last-child(n) E:nth-of-type(n) E:nth-last-of-type(n) E:first-child E:last-child E:first-of-type E:last-of-type E:only-child E:only-of-type E:empty E:link E:target E:lang(fr) E:enabled E:disabled E:checked E:not(selectors) E.class E #id E F E > F E + F E ~ F E, F // дополнительный набор селекторов(нужный по мнению автора): E[foo!=bar] E:button E:contains(text) E:has(selectors) E:input E:parent E:selected E:unchecked E < F При использовании выборки, её название можно писать как easy, так и $E! Также в выборку можно добавить свои псевдо-классы, это делается очень просто: <script type='text/javascript'> easy['my-pseudo-class']=function(){ [ваш код] } // пример: $E.myid=function(o,n){return o.id==n} // если вы собираетесь чтобы у псевдо-класса не было переменной информации(информации в скобках, да и самих скобок), то второй атрибут укажет на название псевдо-класса $E.ids=function(o,v){return o.id==v} // данный вариант означает, что в скобках псевдо-класса будет указываться нужный айди $E.id=function(o,v,n){return o[n]==v} // тоже что и предыдущий вариант, только третий атрибут указывает на название псевдо-класса! </script> Выборка не использует querySelectorAll, это сделано чтобы пользователь мог видеть реальную скорость выборки, да и вообще, это ещё не последняя версия, думаю поставить эту функцию в других, более быстрых версиях! Скачать тут(размер - 4,56Кб). |
Очень, очень медленно Ваша выборка работает, это делает её использование бессмысленным. Но для первого раза весьма неплохо.
Не хватает селекторов для поиска по регулярным выражениям (а-ля div[class=`\w{1,3}`i]). И ещё всяких вкусностей, например, поиска по уровню вложенности чилда (div a:3-10 — найдёт a с вложенностью в div на 3-10 уровне). Просто наскучили Sizzle-подобные движки. ;) советую взгленуть реализацию моего движка http://javascript.ru/forum/project/1...elektorov.html Вашь конечно с ним несравнится,но будет вам в пример благодарностей ненадо кстати \b я не нашол в исходнике-значет по класам неправильно ищит ну например в <div class="primer iese"> $E('.primer') ненайдет а вызов a + * вобще кидает ошибку,lol как и a:contains(")") |
Matre, это ваша реализация выборки не сравнится с моей, ибо моя реализация работает во всех браузерах, а ваша только портит позиционирование z-index'а!
P.S.: Цитата:
Цитата:
Уже осуществил новые реализации поиска, которые гораздо быстрее нынешней версии! В ближайшее время собираюсь выложить! |
Latro,
не обращайте на него внимания он местный псих и тролль |
Gvozd
что я нетак написал?? |
Gvozd,
а что вы скажите по поводу моей выборки? |
Цитата:
|
Latro
вашь движок весь в дырах какой селектор не возьми то type-error, то ищет не правильно по чему вы игнорируете мое сообщение Kolyaj в движке который я выкладывал такой проблемы нет но почему то вы неоцениели его по довстоинству |
Цитата:
|
когда будет включена подержка css3-движок станет бомбой
не все же сразу Цитата:
я то же могу сказать,что 7-3=5 ,только это ни чего непоменяет |
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
|
а серьезно?
|
Цитата:
|
.primer
#primer div:not(.primer, #primer) |
Matre, вы меня не поняли. Вот смотрите, беру я допустим пример Latro, качаю его код, подключаю и использую его API. А что мне делать с вашими 10 строчками, где изменяется z-index, где сама библиотека?
|
у Latro библиотеки то же нет только движок
|
:haha:
Вам не кажется, что JS-фрейморки (точнее их авторы) зашли в тупик? Кругом одни селекторы:help: Один придумал, все подхватили и пытаются повторить. А кто будет двигать прогресс? |
B~Vladi
фреймворк это jqueryUI или ext-js т е они реализуют всякие окна,драггабле и пр. а jquery это библиотека а не фреймворк учите слова |
Цитата:
Твой скрипт накроет любой более-менее сложный динамический интерфейс, как накрывает его jQuery при написании кода "на лету" - работет и хорошо, а то, что табы переключаются с задержкой в пол секунды никто не замечает. Сотри исходники и займись нормальными делами. |
B~Vladi,
Ну почему же сразу в тупик, это просто стремление расширить возможности привычных вещей... Да и вообще, я писал данный скрипт для себя и для того чтобы развивать знания js, выставил сюда чтобы люди посмотрели и оценили его, а не разводили балаган, причём обсуждать в теме совершенно другую разработку(грубо говоря...), когда есть тема для неё... Я вообще планирую совместить свои разработки в одну небольшую библиотечку, пока что планирую анимацию, аджакс и ядро селекторов... |
Цитата:
Цитата:
Цитата:
|
кстати о велосипедах, даже тех самых велосипедов в магазине пруд пруди, так что делать что-то, что уже есть это нормально, главное стараться сделать это лучше!
|
Цитата:
|
Цитата:
|
Цитата:
Цитата:
|
Цитата:
Без этих селекторов, ибо они там вообще не нужны. Подумайте, сколько процентов нод вы используете из всего документа? 10? Может 5? А теперь взгляните на свои селекторы. Сколько указано имен тегов или классов нод, которые вы не используете? Проще (для новичка, по крайней мере) повесить на всё id, но это не гибко, неудобно и тормозит рендеринг (по собственным наблюдениям). Есть другой, более универсальный способ, а так же способ подачи всего этого в JS-код =) Вот я и спрашиваю, почему никто не делает "другое", одни селекторы. Цитата:
Поэтому мне не нравится такая архитектура. |
Часовой пояс GMT +3, время: 04:39. |