[javascript] images 'visible' et 'hidden'

Fermé
Geronimo - 20 oct. 2005 à 15:32
 Geronimo - 20 oct. 2005 à 15:58
Bonjour,

Dans un site ecrit en HTML, j'affiche trois images :

<img src="..." name="riri">
<img src="..." name="fifi">
<img src="..." name="loulou">


Dans mon script, je definis deux groupes d'images, sous forme d'array de String :

var groupe1 = ["riri","fifi"]
var groupe2 = ["riri","loulou"]


j'ai cree deux fonctions qui modifie l'attribut 'visibility' de mes trois images pour afficher ou non les images.

affiche1 () affiche les images du groupe1
affiche2 () affiche les images du groupe2


Pour l'instant, je parcours toutes mes images et je teste si le nom de l'image se trouve dans un groupe et je modifie l'attribut 'visibility' en consequence :

functiun affiche1()
{
      var i;
      for (i=1;i<=3;i++)
      {
                var image = document.images[i];
                var image_name = document.images[i].name;
                if (isIn(image_name,groupe1))
                {
                         image.style.visibility='visible';
                   }
                   else image.style.visibility='hidden';
      }
}
function isIn(str,array)
{
        var bool = false;
        var j;
        var n= array.length;
         for (j=0;j<n;j++) bool = (bool | str==array[j]);
                return bool;
 }


Problemes :
1. c'est pas super
2. je risque d'affecter d'autres images de ma page

Avez-vous une solution ?

Par exemple, acceder a une image par son nom en String :
du genre

document.images.groupe1[i].visibility


Merci d'avance pour vos conseils et votre aide
A voir également:

3 réponses

GallyNet Messages postés 434 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 15 décembre 2008 386
20 oct. 2005 à 15:38
Tu peut utilisé la fonction document.getElementsByName() qui te renvoie un tableau avec tout les éléments qui ont le nom passé en paramètre.
Ou tu utilise la fonction document.getElementById() qui te renvoie éléments qui possede l'id passé ne paramètre. Il faut que t'est image possede l'attribut id est qu'il soit unique :
<img src="..." id="riri" />
0
StreM Messages postés 515 Date d'inscription lundi 18 octobre 2004 Statut Membre Dernière intervention 28 février 2007 124
20 oct. 2005 à 15:51
Attention, suivant les navigateurs, il me semble que tu n'obtiendra pas le résultat escompté :
Il faut déclarer l'attribut style avant de pouvoir le changer :
<img id="photo" style="display: block;">
Alors le
document.getElementById('photo').style.display = "none";
fonctionnera.
Ou alors utilise la fonction "setAttribute".
Bon courage !
0
Merci a vous deux.

la fonction getElementsByName est celle qu'il me fallait.

l'attribut 'visibility' est initialisee lors de la creation de l'image. merci pour la precision.

Encore merci
0