JS: getElementById et  

  • Créateur du sujet Membre supprimé 2
  • Date de début
M

Membre supprimé 2

Invité
Bloc de code:
            // la date de début du compteur (avec mois-1)
            var date = new Date(2013,1,01);
            // la date de maintenant
            var now = new Date();
            // le nombre de départ
            var number = 0;
            // l'incrément
            var increment = 3290;
            // le nombre de seconde
            var second = 1;
            // nombre total de seconde depuis la date de départ
            var secondTotal = (now.getTime()-date.getTime())/1000;
            // incrément total
            var incrementTotal = (secondTotal/1)*3290;
            // nombre total arrondie
            number = Math.round(number+incrementTotal);
            function init(){
                document.getElementById("kwh_fam_an").innerHTML = number;
                // appel de la fonction d'incrémentation toutes les x secondes
                setInterval('incrementation()',second*1000);
            }
            function incrementation(){
                number = number+increment;
                document.getElementById("kwh_fam_an").innerHTML = number;
            }
			
			function lisibilite_nombre(nbr)
{
		var number = ''+nbr;
		var retour = '';
		var count=0;
		for(var i=number.length-1 ; i>=0 ; i--)
		{
			if(count!=0 && count % 3 == 0)
				retour = number[i]+' '+retour ;
			else
				retour = number[i]+retour ;
			count++;
		}
		alert('nb : '+nbr+' => '+retour);
		return retour;
}

Bonjour,
J'utilise le script suivant pour calculer le nombre de Kilowatts consommés depuis le début de l'année 2013. Je ne parviens pas a forcer un espace ( ) entre chaque série de 3 caractères.

Mon format actuel:
12345678901

Format souhaité:
123 456 789 01

Avez-vous une idée ? D'avance merci beaucoup.
 
Tu as définis une fonction lisibilite_nombre() qui visiblement est censé séparer les nombres, mais tu ne l'utilises pas ?

Peut-être avec
Bloc de code:
document.getElementById("kwh_fam_an").innerHTML = lisibilite_nombre(number);
?
 
Au chargement de la page, executes-tu la fonction init() ?
Si tu utilises la librairire jQuery :
Bloc de code:
$(function(){
    init();
});
Sinon :
<body onload="init()">
 
Je te remercie infiniment de ta réponse, grâce à toi, je touche au but. :love:

Avec onload et la modification de getElementById, les espaces s'affichent tous les 3 caractères.
Cependant, j'ai une pop-up dans Safari à chaque incrément. Connais-tu un moyen de s'en débarasser ?

Pour résumer, idéalement, je disposerai d'un format de la sorte sans pop-up:
12. 123. 123. 123

Actuellement, c'est
12312312312.

Merci beaucoup Valentin.