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 ,только это ни чего непоменяет |
Часовой пояс GMT +3, время: 00:03. |