javascript => attribut class

javascript => attribut class - HTML/CSS - Programmation

Marsh Posté le 09-11-2005 à 11:52:09    

Bonjour,
Voila mon probleme:
Je recherche une fonction javascript pour acceder a tous les elements de ma page ayant un attribut class="toto"
 
ma page bidon:

Code :
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <title>Test</title>
  7. </head>
  8. <body>
  9. <div class="toto">
  10. Je suis toto
  11. </div>
  12. <div class="titi">
  13. Je suis titi
  14. </div>
  15. <div class="toto">
  16. Je suis encore toto
  17. </div>
  18. </body>
  19. </html>


 
Merci d'avance ;)

Reply

Marsh Posté le 09-11-2005 à 11:52:09   

Reply

Marsh Posté le 09-11-2005 à 12:39:39    

Il me semble pas que ça soit possible avec l'attribut class qui me semble servir que pour définir des classes css ;)
Donc utilises plutot id, et là getElementById(id)

Reply

Marsh Posté le 09-11-2005 à 13:00:17    

tiens je m'en étais fait une y'a pas longtemps

Code :
  1. function getElementsByClass(className) {
  2.   var arr = new Array();
  3.   var elems = document.getElementsByTagName("*" );
  4.   for(var i = 0; i < elems.length; i++) {
  5.     var elem = elems[i];
  6.     var id = elem.getAttribute("id" );
  7.     var cls = elem.className;// normalement on devrait mettre elem.getAttribute("class" ); mais IE supporte pas
  8.     if(cls == className && id != null) {
  9.       arr[arr.length] = id;
  10.     }
  11.   }
  12.   return arr;
  13. }


 
ça te retourne un tableau avec les ids, mais t'as qu'a la changer pour que ça retourne directement l'objet si ça t'interesse...

Message cité 2 fois
Message édité par anapajari le 09-11-2005 à 13:00:57
Reply

Marsh Posté le 09-11-2005 à 13:06:35    

celestin1409 a écrit :

Bonjour,
Voila mon probleme:
Je recherche une fonction javascript pour acceder a tous les elements de ma page ayant un attribut class="toto"
 
ma page bidon:

Code :
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <title>Test</title>
  7. </head>
  8. <body>
  9. <div class="toto">
  10. Je suis toto
  11. </div>
  12. <div class="titi">
  13. Je suis titi
  14. </div>
  15. <div class="toto">
  16. Je suis encore toto
  17. </div>
  18. </body>
  19. </html>


 
Merci d'avance ;)


http://masklinnscans.free.fr/Tests [...] nctions.js
 
Utiliser la première pour une compatibilité maximum

anapajari a écrit :

tiens je m'en étais fait une y'a pas longtemps

Code :
  1. function getElementsByClass(className) {
  2.   var arr = new Array();
  3.   var elems = document.getElementsByTagName("*" );
  4.   for(var i = 0; i < elems.length; i++) {
  5.     var elem = elems[i];
  6.     var id = elem.getAttribute("id" );
  7.     var cls = elem.className;// normalement on devrait mettre elem.getAttribute("class" ); mais IE supporte pas
  8.     if(cls == className && id != null) {
  9.       arr[arr.length] = id;
  10.     }
  11.   }
  12.   return arr;
  13. }


 
ça te retourne un tableau avec les ids, mais t'as qu'a la changer pour que ça retourne directement l'objet si ça t'interesse...


[:pingouino]
 
T'es au courant qu'un élément peut avoir plusieurs classes [:petrus dei]


Message édité par masklinn le 09-11-2005 à 13:07:45

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 09-11-2005 à 13:35:57    

anapajari a écrit :

tiens je m'en étais fait une y'a pas longtemps

Code :
  1. function getElementsByClass(className) {
  2.   var arr = new Array();
  3.   var elems = document.getElementsByTagName("*" );
  4.   for(var i = 0; i < elems.length; i++) {
  5.     var elem = elems[i];
  6.     var id = elem.getAttribute("id" );
  7.     var cls = elem.className;// normalement on devrait mettre elem.getAttribute("class" ); mais IE supporte pas
  8.     if(cls == className && id != null) {
  9.       arr[arr.length] = id;
  10.     }
  11.   }
  12.   return arr;
  13. }


 
ça te retourne un tableau avec les ids, mais t'as qu'a la changer pour que ça retourne directement l'objet si ça t'interesse...


 
Ok merci je vais regarder ca.

Reply

Marsh Posté le 09-11-2005 à 13:40:11    

Citation :


T'es au courant qu'un élément peut avoir plusieurs classes [:petrus dei]


 
En fait sur tous les element d'attribut class ici toto je vais faire le meme traitement
 
ps: merci ;)

Reply

Marsh Posté le 09-11-2005 à 14:30:38    

celestin1409 a écrit :

Citation :


T'es au courant qu'un élément peut avoir plusieurs classes [:petrus dei]


 
En fait sur tous les element d'attribut class ici toto je vais faire le meme traitement
 
ps: merci ;)


Je parle pas de ça.
 
Il est parfaitement possible d'écrire

<div class="post magic thingie modified">


Ca donnera les 4 classes "post","magic","thingie" et "modified" au div et c'est valide.
 
Sauf que dans ce cas la soluce de Anapajari vole en éclats.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 09-11-2005 à 14:35:52    

JE me demande si ça sert à quelque chose que j'use mon clavier...

Reply

Marsh Posté le 09-11-2005 à 15:02:06    

leflos5 a écrit :

JE me demande si ça sert à quelque chose que j'use mon clavier...


Vu les conneries que tu racontes, pas vraiment [:dawa]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 09-11-2005 à 16:17:51    

masklinn a écrit :

Je parle pas de ça.
 
Il est parfaitement possible d'écrire

<div class="post magic thingie modified">


Ca donnera les 4 classes "post","magic","thingie" et "modified" au div et c'est valide.
 
Sauf que dans ce cas la soluce de Anapajari vole en éclats.


 
 Oué vu dans ce sens c sur

Reply

Marsh Posté le 09-11-2005 à 16:17:51   

Reply

Marsh Posté le 09-11-2005 à 16:24:01    

celestin1409 a écrit :

Je parle pas de ça.
 
Il est parfaitement possible d'écrire

<div class="post magic thingie modified">


Ca donnera les 4 classes "post","magic","thingie" et "modified" au div et c'est valide.
 
Sauf que dans ce cas la soluce de Anapajari vole en éclats.


 
Jamais dit le contraire, moi je proposais juste un petit bout de code qui avait l'air de répondre à son besoin et dont je lui conseillais de s'inspirer...
 
Après c'est vrai aussi que ça marche pas sous Lynx ... faudra que je corrige ça   :o  
 
[edit]m'en sors pas avec les quotes


Message édité par anapajari le 09-11-2005 à 16:25:39
Reply

Marsh Posté le 11-11-2005 à 03:30:10    

masklinn a écrit :

Vu les conneries que tu racontes, pas vraiment [:dawa]


Je traduits l'interligne pour mosieur qui manifestement se sent supérieur sur ce coup ;)
 
ID => référence unique
CLASS => référence multiple
 
Donc toi, philosophiquement parlant, ça te gêne pas de vouloir accéder à des données qui sont pas uniques, tu tires à pile ou face pour choisir laquelle tu veux???  :whistle:  
 
Moi comme c'est énoncé je comprends que c'est un accès aux données donc uniques vu l'exemple parce que "Toto" pour moi c'est différent de "c'est encore toto"  :whistle:  
 
D'où ma réponse :) Si c'est pour de la mise en page, ok class mais moi je vois de l'accès à l'arbre et là rien que parce que 2 zones apparement pas identiques à part le nom, bah non  :kaola:  
 
Et si c'est pour de la modif de css en JS je relève même pas... C'est pratique ouais, pro-proof non...

Reply

Marsh Posté le 11-11-2005 à 04:57:55    

leflos5 a écrit :

Donc toi, philosophiquement parlant, ça te gêne pas de vouloir accéder à des données qui sont pas uniques,


Bien sûr que non [:spamafote]  
 
Hint: un ID désigne un élément, une classe désigne un ensemble d'éléments [:itm]

Citation :

tu tires à pile ou face pour choisir laquelle tu veux???  :whistle:


Le but c'est peut être de toutes les traiter [:itm]

Citation :

Moi comme c'est énoncé je comprends que c'est un accès aux données donc uniques vu l'exemple parce que "Toto" pour moi c'est différent de "c'est encore toto"  :whistle:  


Ben va faloir retourner au CP pour apprendre à lire [:spamafote]  

Citation :

Moi comme c'est énoncé je comprends que c'est un accès aux données donc uniques vu l'exemple parce que "Toto" pour moi c'est différent de "c'est encore toto"  :whistle:  


Ca me semble pourtant relativement clair [:petrus75]  

Citation :

D'où ma réponse :) Si c'est pour de la mise en page, ok class mais moi je vois de l'accès à l'arbre et là rien que parce que 2 zones apparement pas identiques à part le nom, bah non  :kaola:  
 
Et si c'est pour de la modif de css en JS je relève même pas... C'est pratique ouais, pro-proof non...


Mais qu'est-ce que tu parles de mise en page [:petrus dei]


Message édité par masklinn le 11-11-2005 à 05:11:48

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed