begin process at 2010 08 01 01:32:51
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Trucs & Astuces

 > FONCTION GETELEMENTSBYCLASS

FONCTION GETELEMENTSBYCLASS


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Trucs & Astuces Niveau :Débutant Date de création :05/12/2004 Date de mise à jour :05/12/2004 16:13:13 Vu :9 276

Auteur : jesusonline

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note


 Description

Je pense que le titre est assez explicite : la fonction retourne tout le elements ayant une classe spécifié

Cette source n'est pas de moi : http://www.pcinpact.com/forum/index.php?s=04183db9 18dad860da2b324f036406ed&showtopic=23880

Source

  • /* Retourne tout les elements du documents ayant comme class maClass */
  • function getElementsByClass(maClass)
  • {
  • /* Tableau comportant les elements de retour*/
  • var tabRetour = new Array();
  • /* Tableau temporaire necessaire pour faire la boucle et rechercher
  • les elements ayant la classe précisé, il va contenir tout les
  • elements du documents */
  • var tabTmp = new Array();
  • /* Recupere tout les elements du document */
  • tabTmp = document.getElementsByTagName("*");
  • /* Compteur, sert à incrementer le tableau des valeurs de retour */
  • j=0;
  • /* Pour chaque element de tabTmp */
  • for (i=0; i<tabTmp.length; i++) {
  • /* on regarde si la classe de l'i-eme element est celle qu'on recherche */
  • if (tabTmp[i].className==maClass)
  • {
  • /*si oui on ajoute dans notre tableau de retour à l'index j */
  • tabRetour[j]=tabTmp[i];
  • /* on incremente de 1 j pour pas réecrire l'element suivant par dessus */
  • j++;
  • }
  • /* Element suivant ... */
  • }
  • /* on retourne notre tableau d'elements ayant la classe spécifié*/
  • return tabRetour;
  • }
  • Et comme vous me l'avez demandé, voici un exemple d'utilisation :
  • <head>
  • <style type="text/css">
  • .pair{height:10px;color:red;}
  • .impair{height:15px;color:blue;}
  • </style>
  • <script language="JavaScript" type="text/javascript">
  • function getElementsByClass(maClass) {
  • var tabRetour = new Array();
  • var tabTmp = new Array();
  • tabTmp = document.getElementsByTagName("*");
  • j=0;
  • for (i=0; i<tabTmp.length; i++) {
  • if (tabTmp[i].className==maClass) {
  • tabRetour[j]=tabTmp[i];
  • j++;
  • }
  • }
  • return tabRetour;
  • }
  • function changer(){
  • for(var i=0;i<getElementsByClass("pair").length;i++){
  • getElementsByClass("pair")[i].style.color="green";
  • }
  • }
  • </script>
  • </head>
  • <body>
  • <hr class="pair"></hr>
  • <hr class="impair"></hr>
  • <hr class="pair"></hr>
  • <hr class="impair"></hr>
  • <hr class="pair"></hr>
  • <hr class="impair"></hr>
  • <hr class="pair"></hr>
  • <hr class="impair"></hr>
  • <hr class="pair"></hr>
  • <input type="button" value="click" onclick="changer()" />
  • </body>
/* Retourne tout les elements du documents ayant comme class maClass */    
function getElementsByClass(maClass)
{  
	/*	Tableau comportant les elements de retour*/
	var tabRetour = new Array();
	/*  Tableau temporaire necessaire pour faire la boucle et rechercher
		les elements ayant la classe précisé, il va contenir tout les 
		elements du documents */
	var tabTmp = new Array();
	/* Recupere tout les elements du document */
	tabTmp = document.getElementsByTagName("*");
	/* Compteur, sert à incrementer le tableau des valeurs de retour */
	j=0;
	/* Pour chaque element de tabTmp */
	for (i=0; i<tabTmp.length; i++) { 
		/* on regarde si la classe de l'i-eme element est celle qu'on recherche */ 
		if (tabTmp[i].className==maClass) 
		{  
			/*si oui on ajoute dans notre tableau de retour à l'index j */
			tabRetour[j]=tabTmp[i];
			/* on incremente de 1 j pour pas réecrire l'element suivant par dessus */
			j++;
		}  
	/* Element suivant ... */
	}     
	/* on retourne notre tableau d'elements ayant la classe spécifié*/
   return tabRetour;
} 


Et comme vous me l'avez demandé, voici un exemple d'utilisation :

<head>
   <style type="text/css">
     .pair{height:10px;color:red;}
     .impair{height:15px;color:blue;}
   </style>
   <script language="JavaScript" type="text/javascript">
   function getElementsByClass(maClass) {  
      var tabRetour = new Array();
     var tabTmp = new Array();
     tabTmp = document.getElementsByTagName("*");
     j=0;
      for (i=0; i<tabTmp.length; i++) {  
          if (tabTmp[i].className==maClass) {  
            tabRetour[j]=tabTmp[i];
        j++;
          }  
       }
      return tabRetour;
   }
   function changer(){
     for(var i=0;i<getElementsByClass("pair").length;i++){
       getElementsByClass("pair")[i].style.color="green";
    }
   }
   </script>
</head>
<body>
   <hr class="pair"></hr>
   <hr class="impair"></hr>
   <hr class="pair"></hr>
   <hr class="impair"></hr>
   <hr class="pair"></hr>
   <hr class="impair"></hr>
   <hr class="pair"></hr>
   <hr class="impair"></hr>
   <hr class="pair"></hr>
   <input type="button" value="click" onclick="changer()" />
</body>

 Conclusion

Les commentaires sont toujours la bienvenue.

marche sur IE6 SP2 et Firefox


 Historique

05 décembre 2004 15:43:36 :
05 décembre 2004 16:13:14 :
Ajout des commentaires

 Sources du même auteur

IMPLÉMENTATION DU TYPE GUID AVEC MICROSOFT AJAX
Source avec Zip CHRONOMÈTRE MESURANT LA DURÉE D'UNE FONCTION
Source avec Zip Source avec une capture GADGET POUR VISTA : CPU GRAPH
FUNCTION.WAITFOR : ATTENDRE UNE CONDITION AVANT D'EXECUTER U...
DESORGANISÉ UN TABLEAU : LA MÉTHODE SORT

 Sources de la même categorie

Source avec Zip Source avec une capture TELECHARGEMENT SANS RECHARGER LA PAGE par zulrigh
AUTOMATION EXCEL PAR JAVASCRIPT par Cpustack
REMPLACER LE INNERTEXT/TEXTCONTENT SANS SUPPRIMER LES BALISE... par jdmcreator
HTML_ENTITIES_DECODE par zen69
ACCÈS À LA MÉTHODE SETATTRIBUTE('STYLE','') SOUS IE6 par masternico

Commentaires et avis

Commentaire de coucou747 le 05/12/2004 12:06:18

class...
pas forcément tableaux aussi...

Personellement, je trouves que ça aurait plus sa place dans un tutoriel qu'ici...

Commentaire de rttb le 05/12/2004 15:36:43

Oui un tutoriel et un exemple d'utilisation comme sur l'origine de la source  serait le bienvenue.
Livré comme tel, c'est pas très clair je trouve...

Commentaire de jesusonline le 05/12/2004 15:41:55 administrateur CS

un tutorial pour ca ?

je pense pas que ce soit bien necessaire, je prefere une source qui va directement au but, et puis le nom de la fonction fait penser aux methodes GetElementBy... et cette fonction fonctionne de la meme maniere

mais si tel est votre désir je vais modifier ma source :)

Commentaire de coucou747 le 05/12/2004 15:53:45

euh vous avez pas bien saisi...
Je trouves que c'est plus une démonstration de l'insttruction length et des tableaux qu'une source en soi...

Donc çaaurait plus eu sa place dans un tutoriel...

Commentaire de jesusonline le 05/12/2004 16:07:00 administrateur CS

d'accord, je ne pensais pas que ce code aurait pu etre interessant pour les manipulation de tableaux, moi personelement je trouve que cette fonction peut servir dans beaucoup de cas, et je ne pense pas qu'il soit vraiment necessaire de savoir comment elle fonctionne, mais je vais la commenter.

Commentaire de danou99 le 25/07/2007 17:14:00

ca ne marche pas chez moi avec firefox 2.0.0.5

avec ie6028 ca marche, j'ai fais un essai sur une page qui a beaucoup d'éléments et c'est vraiment long 2 secondes pour que les modifs apparaissent

je cherche d'autres scripts

Commentaire de danou99 le 25/07/2007 17:29:09

j'ai trouvé le script qui marche partout et est instantané :
http://my.opera.com/Groumphy/blog/index.dml/tag/getElementsByClass

Commentaire de jesusonline le 25/07/2007 19:24:04 administrateur CS

Bonjour avec l'experience (cette source date de 2 ans et demi :p) j'ai appris que cet approche n'est pas la meilleure, bien souvent il est plus simple de passer par des id car beaucoup plus rapide. Mais dans certains cas on a pas le choix et ce genre de fonction peut être utile, mais c'est à consommer avec modération.

Question perf, regarde ici http://extjs.com/blog/2007/07/10/css-selectors-speed-myths/ c'est relativement explicite :-)

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Août 2010
LMMJVSD
      1
2345678
9101112131415
16171819202122
23242526272829
3031     

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales