Changer le ClassName d'une image avec son nom - HTML/CSS - Programmation
Marsh Posté le 13-09-2005 à 08:21:11
déjà c'est pas name qu'on utilise mais ID
et ensuite en code ca donne ca :
var monimage = document.getElementById("lui" );
monimage.className = "Toto";
Marsh Posté le 13-09-2005 à 08:34:42
darkkrab a écrit : Ce code change le ClassName de tous images avec pour nom "lui", mais il ne fonctionne pas sous Netscape/Mozilla, quelqu'un a une idée pour que ça fonctionne.
|
Marsh Posté le 13-09-2005 à 08:36:47
On peut utiliser NAME ou ID pour une image. Et je ne peux pas simplement utilsier monimage.className = "Toto";, parce que je ne sais pas combien j'ai d'images ayant l'ID ou le NAME (La page est généré en php). Il me faux donc absolument un script qui change tout les images qui ont le même ID/NAME pour que ça fonctionne.
Marsh Posté le 13-09-2005 à 08:42:12
darkkrab a écrit : On peut utiliser NAME [...] pour une image. |
Il faut éviter, le HTML 4.01 "name" n'est présent que pour des raisons de compatibilité
Citation : On peut utiliser ID pour une image. |
Il est interdit d'avoir deux éléments avec le même id dans une page, toutes les images doivent donc avoir leur propre ID
Citation : Et je ne peux pas simplement utilsier monimage.className = "Toto";, parce que je ne sais pas combien j'ai d'images ayant l'ID ou le NAME (La page est généré en php). |
Tu donnes des classes à tes images et tu sélectionnes uniquement les images ayant la classe recherchée pour faire tes traitements
Marsh Posté le 13-09-2005 à 08:50:13
J'ai déjà utiliser le même id pour plusieurs éléments, avec une boucle c'est OK. Comment faire "Tu donnes des classes à tes images et tu sélectionnes uniquement les images ayant la classe recherchée pour faire tes traitements"? (Comment appeler une image?)
Marsh Posté le 13-09-2005 à 09:13:27
darkkrab a écrit : J'ai déjà utiliser le même id pour plusieurs éléments, avec une boucle c'est OK. |
Non, c'est pas ok, c'est illégal d'après la spec et ça donne un comportement indéfini, avec des conneries pareilles faut pas t'étonner si tu te retrouves avec des bugs plein ton code
Citation : Comment faire "Tu donnes des classes à tes images et tu sélectionnes uniquement les images ayant la classe recherchée pour faire tes traitements"? (Comment appeler une image?) |
<img class="latumetstaclasseboulet"/> |
var tesimagesdeboulet = document.getElementsByTagName('IMG'); |
Marsh Posté le 13-09-2005 à 09:19:50
ReplyMarsh Posté le 13-09-2005 à 09:24:48
Les images n'ont pas tous un ClassName au chargement de la page. Cest pourquoi je doit utiliser un ID commun.
Et je ne peux pas utiliser ceci, ça modifie tout les images
Code :
|
La question est:
var agg = ?
Marsh Posté le 13-09-2005 à 09:41:21
tu donnes la meme classe à toutes tes images
Marsh Posté le 13-09-2005 à 09:48:49
Exemple: au début tout images sont vertes sauf une qui est jaune, l'utilisateur clique sur un bouton et la moitier des images vertes deviennent bleus. Et je voudrais quavec un autre bouton touts les images redeviennent vertes sauf la jaune qui reste jaune.
Il me faux vraiment un ID commun pour rassembler tous les images qui sont vertes.
Marsh Posté le 13-09-2005 à 09:52:51
on t'a déjà dis qu'un ID c'est unique dans une page puisque la commande getElementById ne renvoi qu'un seul objet au lieu d'un tableau de références
Marsh Posté le 13-09-2005 à 09:59:29
Je sais (je ne débatterai pas), mais comment regrouper un goupe d'images?
Marsh Posté le 13-09-2005 à 10:03:06
ben tu essais de petites combine, fais marcher ton cerveau..
tu nommes tes id comme cela : image1, image2....
les images de 0 à x sont premier groupe...etc
Faut un peu réfléchir man
Marsh Posté le 13-09-2005 à 10:08:57
J'y avait pensé mais je ne sais pas d'avance le nombre d'images que je vais avoir de chaque couleur au chargement de la page. Et je me demandais surtout s'il n'y avait pas une autre syntaxe pour ma variable 'agg' pour que ce sois compatible avec les autres navigateurs.
Marsh Posté le 13-09-2005 à 10:09:56
darkkrab a écrit : Exemple: au début tout images sont vertes sauf une qui est jaune, l'utilisateur clique sur un bouton et la moitier des images vertes deviennent bleus. Et je voudrais quavec un autre bouton touts les images redeviennent vertes sauf la jaune qui reste jaune. |
Tout ça se fait avec des classes... L'attribut class permet justement de donner un certain sens à des éléments, afin par exemple de leur donner un style, ou de leur donner un certain comportement via JS, etc.
Marsh Posté le 13-09-2005 à 10:14:04
Ptin j'en ai marre
Même le matin chuis pas réveillé
darkkrab a écrit : Les images n'ont pas tous un ClassName au chargement de la page. |
T'as qu'à en mettre une
Citation : Cest pourquoi je doit utiliser un ID commun. |
C'est
in
ter
dit
interdit
pas autorisé
pas droit
mal
bouh
berk
DEUX ELEMENTS D'UNE MÊME PAGE NE PEUVENT PAS PORTER LE MÊME ID
Marsh Posté le 13-09-2005 à 10:16:18
Dans l'exemple vert égale pas de class. Mais le problème c'est qu'il y a d'autres images sans class. Je sais qu'il y a quand même un moyen, mais le vrai problème va survenir quand tous les images vont se voir octroyer la même class, il n'y aura plus moyen de les différencier.
Marsh Posté le 13-09-2005 à 10:20:17
J'ai une question pour masklinn.
Je sais que tu a raison pour les ID, mais je cherche un moyen. Et au fait il est ou le problème avec NAME?
Marsh Posté le 13-09-2005 à 10:21:20
Moi je dis ton affaire est mal ficelé, bosse un peu plus et trouve quelque chose de plus concordant...
Marsh Posté le 13-09-2005 à 10:21:58
Code :
|
c'est pas parfait hein ! mais c'est juste pour montrer au monsieur ce qu'on peut faire de nos jours
Marsh Posté le 13-09-2005 à 10:27:59
darkkrab a écrit : J'ai une question pour masklinn. |
Parce que "name" a été déprécié sur les images ça veut dire qu'on est plus censés l'utiliser
Je vois pas trop ce que t'as contre les classes
Marsh Posté le 13-09-2005 à 10:37:34
La dernière image ne change pas.
Code :
|
Marsh Posté le 13-09-2005 à 10:41:25
Mon acienne boucle fontionne.
Merci Gatsusat pour le getAttribute.
Et j'ai rien contre les classes.
Marsh Posté le 13-09-2005 à 10:48:26
Pour récupérer tous les éléments qui ont une même classe :
http://www.dylanschiemann.com/blog [...] 0306041638
http://www.glazman.org/weblog/newa [...] #s95287073
Marsh Posté le 13-09-2005 à 10:49:33
var agg = document.getElementsByTagName("img" ); <=== c'est pas en MAJUSCULE que IMG doit etre ?
je crois car sinon ca foire tout
Marsh Posté le 13-09-2005 à 10:50:51
gatsusat a écrit : var agg = document.getElementsByTagName("img" ); <=== c'est pas en MAJUSCULE que IMG doit etre ? |
Ca dépend si t'es en HTML ou en XHTML, non ?
Marsh Posté le 13-09-2005 à 10:52:50
Oublie pas avec des pages XHTML d'utiliser les deux types MIME possibles
Marsh Posté le 13-09-2005 à 10:56:04
Code :
|
avec ce code HTML
sous IE
a minuscule : Ca marche
A majuscule : ca marche
sous FF
a minuscule : Ca marche
A majuscule : ca marche
Code :
|
avec ce code en XHTML
sous IE
a minuscule : Ca marche
A majuscule : ca marche
sous FF
a minuscule : Ca marche
A majuscule : ca marche
Marsh Posté le 13-09-2005 à 10:57:11
FlorentG a écrit : Oublie pas avec des pages XHTML d'utiliser les deux types MIME possibles |
types Mime ??? hu ??
can you explain more for me please Mister FlorentG
edit: c'est bon j'ai pigé : type text/html ou type text/xml, tu peux faire le test pour moi, sur les deux types mimes ??? je suis au taf et j'ai po d'apache ni php sous la main
ma fonction renvoi 2 si c'est bon et 0 si c'est faut (avec un alert bourrin)
Marsh Posté le 13-09-2005 à 11:30:20
FlorentG a écrit : Ca dépend si t'es en HTML ou en XHTML, non ? |
en application/xhtml+xml c'est impérativement en minuscules, en text/html il est plus prudent de le mettre en majuscules (IE, entre autres, a parfois des comportements bizarres)
Marsh Posté le 13-09-2005 à 11:31:52
masklinn a écrit : en application/xhtml+xml c'est impérativement en minuscules |
Alors ce con de FireFox fait n'importe quoi
Marsh Posté le 13-09-2005 à 11:35:55
Marsh Posté le 13-09-2005 à 11:43:45
ReplyMarsh Posté le 13-09-2005 à 11:46:07
Ca fonctionne bien :
<?php |
Marsh Posté le 13-09-2005 à 00:49:51
Ce code change le ClassName de tous images avec pour nom "lui", mais il ne fonctionne pas sous Netscape/Mozilla, quelqu'un a une idée pour que ça fonctionne.