J'ai plusieurs div nommés P0, P1, P2, ..., Pn
j'essaye de modifier ma fonction javacript qui pour l'instant ne me retourne que 5 entités.
l'actuelle est comme cela (elle fonctionne parfaitement):
Maintenant je veux pouvoir rendre cette fonction dynamique c'est à dire totalement transparente si j'utilise 2 éléments ou 500.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 function switchBest( layerName ) { if ( document.getElementById ) { var player[1] = document.getElementById( 'P0' ); var player[2] = document.getElementById( 'P1' ); var player[3] = document.getElementById( 'P2' ); var player[4] = document.getElementById( 'P3' ); var player[5] = document.getElementById( 'P4' ); player[1].style.display = 'none'; player[2].style.display = 'none'; player[3].style.display = 'none'; player[4].style.display = 'none'; player[5].style.display = 'none'; switch(layerName) { case "P0": player[1].style.display = 'block'; break; case "P1": player[2].style.display = 'block'; break; case "P2": player[3].style.display = 'block'; break; case "P3": player[4].style.display = 'block'; break; case "P4": player[5].style.display = 'block'; break; default: break; } } } switchBest('P0');
J'ai donc crée cette fonction. Ajoutant un paramètre qui me donne le nombre maximum d'élements que j'aurais (utile pour l'initialisation de mon tableau).
j'ai donc écrit cette fonction:
Tous mes elements sont bien cachés, P0 est affiché. mais j'ai ce message qui apparait à chaque click et Pn ne s'affiche pas,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 function switchBest( layerName, maxValue ){ var player = new Array(maxValue); if ( document.getElementById ) { var i=1; while(i<maxValue){ player[i]=document.getElementById ( ('P' + i) ); player[i++].style.display = 'none'; // on cache tous les elements } player[layerName.replace(P, "")].style.display = 'block'; } } switchBest('P0');
Donc quand ont fait une concatenation comme 'P' + i j'ai l'impression que i est ensuite traité comme un string.... ai-je raison?erreur: player[i++] has no properties
Et si c'est le cas, je fais comment pour éviter ça?![]()
Partager