sélecteur css 3, cross-browser.
Pour ceux qui ne savent pas à quoi sert ce script , celui-ci sélectionne des éléments HTML définit par le sélecteur css3 -> voir http://www.w3.org/Style/css3-selectors-updates/WD- css3-selectors-20010126.fr.html
IDQuery est le sélécteur le plus rapide et le plus léger jamais créer, il à besoin d'être beaucoup testé, mais je peux pas tout seule... hésitez pas à l'utiliser... contrairement au grosse pointure telle que jquery, je n'ai pas la possibilité de facilement le faire connaitre ... je compte sur vous donc !
3 fonctions dispo:
-ID.select
-ID.selectParents
-ID.match
vous devrais pas avoir tros de mal a changer ou supprimer l'espace de nom.
pour toute les fonctions de séléctions , on peux passer un tableau d'élément , ce qui permet d'enchainer les sélécteurs, par exemple :
var r1 = ID.select('div span');//traitement
var r2 = ID.select('a[target=menu]', r1 )//traitement
la sélections des parents ne prend en charge que le sélecteurs css2, sans les pseudo sélecteurs commençant par ':'
la fonction match renvoie true, si l'élément passé correspond à un sélecteurs, le 3ême arguments est optionnelle, c'est un élément ascendant qui doit pouvoir retourné l'élément à partir du sélecteur. (par défaut document.documentElement)
Toutes ses fonctions fonctionne par le principe de la compilation, en créant une fonction javascript , évalué par la suite, à partir de la règle css fournit. Ces fonctions sont ensuite stocké dans un système de cache. La séléction ne stock pas le résultat dans une cache , pour ne pas consommer tros de mémoire, de plus une sélection est souvent unique. Le testeur (ID.match) enregistre dans sa cache le résultat du test , contrairement à la sélection, car on n'enregistre que des booleans, de plus le test d'un élément peux être exécuté plusieurs fois, je pense notamment à la délégation d'évènement...
Bientôt une version, on l'on pourra gérer de A à Z la cache, pas le temps :(
volà, voilà, ce script est là tout d'abord pour rendre compatible la fonction querySelectorAl à tout les navigateurs, il pourra aussi servir pour votre librairie perso ...
bye++