Problème pour JAVASCRIPTEURS

Résolu/Fermé
JessayeDeTrouver Messages postés 270 Date d'inscription mercredi 9 septembre 2009 Statut Membre Dernière intervention 4 mai 2012 - 14 nov. 2009 à 16:47
JessayeDeTrouver Messages postés 270 Date d'inscription mercredi 9 septembre 2009 Statut Membre Dernière intervention 4 mai 2012 - 26 nov. 2009 à 20:46
Bonjour, j'ai un problème, mais d'abord je voudrais vous montrer ce que je voudrais faire :

Dans une page web, j'ai 3 lignes comme ceci :

<div id='idLigne0'>2</div>
<div id='idLigne1'>5</div>
<div id='idLigne2'>2</div>

Ensuite avec une fonction javascript, j'incrémente toutes les valeurs des lignes simultanément toutes les secondes ,
càd que à la 1ère seconde:
-à la 1ère ligne : le 2 devient 3,
-à la 2ème ligne : le 5 devient 6,
-et à la 3ème ligne : le 2 devient 3.

puis à la 2ème seconde :
-à la 1ère ligne : le 3 devient 4,
-à la 2ème ligne : le 6 devient 7,
-et à la 3ème ligne : le 3 devient 4.

etc..

Voici donc le code complet de la page web qui contient la fonction javacript en question :


Code :
<html>
<head>
</head>
<body>

<div id='idLigne0'>2</div>
<div id='idLigne1'>5</div>
<div id='idLigne2'>2</div>

<script language='javascript'>

function incrementerTouteLesSecondes()
{
for(n=0;n<=2;n++)
{
objLigne=new Array(); //On sélectionne tous les id des lignes
objLigne[n]=document.getElementById("idLigne"+n);

valeurDansLaLigne=new Array(); //On récupère les valeurs de chaque ligne
valeurDansLaLigne[n]=objLigne[n].innerHTML;
valeurDansLaLigne[n]=eval(valeurDansLaLigne[n]);

valeurDansLaLigne[n]=valeurDansLaLigne[n]+1; //On incrémente de 1 à toutes les valeurs des lignes simultanément

objLigne[n].innerHTML=valeurDansLaLigne[n]; //Puis on affiche les nouvelles valeurs, càd les valeurs qu'on vient d'incrémenter
}

setTimeout("incrementerTouteLesSecondes()",1000); //Puis on récommence
}


incrementerTouteLesSecondes(); //On lance la fonction incrementerTouteLesSecondes()

</script>

</body>
</html>

Et donc ce que je n'arrive pas à faire, c'est que si une des lignes a atteint la valeur 10, et bien on arrète d'incrémenter cette ligne.

Par exemple : imaginons que la valeur de la 2ème ligne a atteint la valeur 10, et donc on incrémente plus le 10,
et que la valeur de la 1ère et celle de la 3ème ligne continuent d'incrémenter car elles n'ont pas encore atteint la valeur 10.

Est-ce que quelqu'un sait comment il faut faire ?, je suis dessus depuis midi...

Merci d'avance, cordialement

2 réponses

Azer_Ty Messages postés 104 Date d'inscription vendredi 31 octobre 2008 Statut Membre Dernière intervention 4 juillet 2011 60
17 nov. 2009 à 10:31
Bonjour,
Essaye donc ceci :
<script language='javascript'>
function incrementerTouteLesSecondes()
{
	var continuer = false;	// savoir si on contune ou pas

	for(n=0;n<=2;n++)
	{
		objLigne=new Array(); //On sélectionne tous les id des lignes
		objLigne[n]=document.getElementById("idLigne"+n);

		valeurDansLaLigne=new Array(); //On récupère les valeurs de chaque ligne
		valeurDansLaLigne[n]=objLigne[n].innerHTML;
		valeurDansLaLigne[n]=eval(valeurDansLaLigne[n]);

		// si le contenu de la div est inférieure à 10 on l'incrémente
		if(valeurDansLaLigne[n] < 10){
			valeurDansLaLigne[n]=valeurDansLaLigne[n]+1; //On incrémente de 1 à toutes les valeurs des lignes simultanément
			continuer = true;	// comme il y a au moins une div inférieure à 10 on continue
		}

		objLigne[n].innerHTML=valeurDansLaLigne[n]; //Puis on affiche les nouvelles valeurs, càd les valeurs qu'on vient d'incrémenter
	}

	// on arrête de tourner quand toutes les cases sont arrivées à 10
	if(continuer)
		setTimeout("incrementerTouteLesSecondes()",1000); //Puis on récommence
}


incrementerTouteLesSecondes(); //On lance la fonction incrementerTouteLesSecondes()

</script>


Bonne journée,
0
JessayeDeTrouver Messages postés 270 Date d'inscription mercredi 9 septembre 2009 Statut Membre Dernière intervention 4 mai 2012 47
26 nov. 2009 à 20:46
Merci de m'avoir répondu, et merci pour la réponse
0