Forum Clubic

Comment modifier un layer parmis plusieurs en fonction d'une variable

Bonsoir à tous,

Voilà mon problème

sur mon site, il y a 2 boutons et 25 petits carrés de couleur (qui sont en fait des layer avec un fond colloré) et ça fonctionne en 2 étapes

  1. quand l’utilisateur clique sur le premier bouton, il choisit une couleur dans la liste de 25 et le nom de celle-ci est écrite dans un layer (appellé : Couleur)
  2. quand il clique sur le second bouton, le carré de la couleur choisie disparait

sauf que ma second fonction ressemble pour l’instant à ça :
(sachant que les petits carrés sont des layers qui s’appellent CarreBleu, CarreVert, CarreRouge …)

function cache_carre () {
couleur_actuelle = Couleur.innerHTML
switch (couleur_actuelle) {
case “Bleu” : document.all.CarreBleu.style.visibility = “hidden”
break
case “Vert” : document.all.CarreVert.style.visibility = “hidden”
break
… }
}

c’est long et comme le nombre de couleur va augmenter, ca être pénible, à force, de toutes les lister
Ma question est donc :
Est il possible de formuler les choses de la façon suivante :

function cache_carre () {
couleur_actuelle = Couleur.innerHTML
document.all.couleur_actuelle.style.visibility = “hidden”
}

Je sais, cette syntaxe ne marche pas, le compilateur pense que “couleur_actuelle” est le nom d’un layer et pas celui d’une variable …
mais, y a-t-il une façon d’écrire cette ligne pour que le compilateur sache que je parle d’une variable et pas d’un layer ?

d’avance merci : )
Edité le 08/01/2009 à 03:24

hum. Déjà, je te suggèrerai d’utiliser l’attribut id sur des champs, et de passer par la fonction document.getElementById :

function cache_carre () {
couleur_actuelle = Couleur.innerHTML
document.getElementById("Carre" + couleur_actuelle).style.visibility = "hidden"
}

Avec tes carrés :

Exactement ce qu’il me fallait, merci beaucoup : )