modification de format? Un Int devient un String.
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):
Code:
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'); |
Maintenant je veux pouvoir rendre cette fonction dynamique c'est � dire totalement transparente si j'utilise 2 �l�ments ou 500.
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:
Code:
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'); |
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,
Citation:
erreur: player[i++] has no properties
Donc quand ont fait une concatenation comme 'P' + i j'ai l'impression que i est ensuite trait� comme un string.... ai-je raison?
Et si c'est le cas, je fais comment pour �viter �a? :roll: