Представляю вашему вниманию выборку которая легко осуществляет поиск по
CSS1-3 селекторам. Исходя из названия, можно понять что выборка мала, и это действительно так, из всех известных мне выборок, моя выборка меньше минимум в 2 раза! Наверное это её самая первая особенность!
Увы, но выборкой я уже не занимался давненько, точнее занимался, и это далеко не последняя версия, уже есть наброски гораздо более быстрой выборки!
Объясню как она работает:
<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Кб).