Une demande qui revient souvent et qui n'est pas implémenté de base dans JQuery sans extension...

le but, recupérer un tableau d'elements au moyen d'un filtre sur l'id

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script type="text/javascript">
document.getElementsByReg=function(reg){
var tabReg=new Array();
var tabElts=document.getElementsByTagName('*');
var TEL=tabElts.length;
i=0;
while(tabElts[i]){
	if(tabElts[i].id){
	         if(reg.test(tabElts[i].id)){tabReg.push(tabElts[i]);}
	         }
	i++;         
	}
return tabReg;
}
</script>
un exemple de code html:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
<body>
<div id="_3">
<div id="mondiv1">truc</div>
<div id="mondiv2">truc</div>
<div id="madiv3">truc</div>
<div id="madiva">truc</div>
<div id="mandiv5">truc</div>
<div id="mondivb">truc</div>
</div>
</body>
et l'utilisation du code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
alert(document.getElementsByReg(/\d/).length)"
retournera ici un alert du nombre l'elements ayant du numérique dans leur id ...

3 limitations à ce script:
1) il faut maitriser les regExp pour s'en servir
2) si le paramètre passé à la fonction n'est pas une expression régulière il retourne un array vide
3)si tout se passe bien il retourne un tableau des elements dans l'ordre du flux html