Bonjour,

je suis grande débutante. J'ai déjà tapé un peu de HTML et de CSS mais je me mets à peine au JS avec des exercices simples - genre "JS pour les nuls"
Pour l'instant ce n'est pas une réussite : pour ma première page, un exercice consistant à afficher un compte de 1 à 10, j'ai déjà un souci, mes à apparaissent comme des à dans le navigateur.

Le code est le suivant :

<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html; charset:utf-8" />

<head>
<title>Bonjour HTML ! Quel titre à la con...</title>
<script>
	function countToTen(){
		var count=0;
		while (count<10) {
			count++;
			document.getElementById("theCount").innerHTML+=count+"<br>";
		}
	}
</script>
</head>
<body onload="countToTen();">
<h1>Voyons voir si cette machine sait compter jusqu'à 10...</h1>
<p id="theCount"></p>
</html>


J'ai enregistré la page en UTF-8, mais pas de résultat.

Auriez-vous une idée pour m'aider ?

Merci d'avance !
Modifié par Ctout (02 Oct 2016 - 20:06)
Ctout a écrit :
Bonjour,
je suis grande débutante. J'ai déjà tapé un peu de HTML et de CSS mais je me mets à peine au JS avec des exercices simples - genre "JS pour les nuls"
Pour l'instant ce n'est pas une réussite : pour ma première page, un exercice consistant à afficher un compte de 1 à 10, j'ai déjà un souci, mes à apparaissent comme des à dans le navigateur.
Le code est le suivant :
&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset:utf-8" /&gt;

&lt;head&gt;
&lt;title&gt;Bonjour HTML ! Quel titre à la con...&lt;/title&gt;
&lt;script&gt;
	function countToTen(){
		var count=0;
		while (count&lt;10) {
			count++;
			document.getElementById("theCount").innerHTML+=count+"&lt;br&gt;";
		}
	}
&lt;/script&gt;
&lt;/head&gt;
&lt;body onload="countToTen();"&gt;
&lt;h1&gt;Voyons voir si cette machine sait compter jusqu'à 10...&lt;/h1&gt;
&lt;p id="theCount"&gt;&lt;/p&gt;
&lt;/html&gt;


J'ai enregistré la page en UTF-8, mais pas de résultat.

Auriez-vous une idée pour m'aider ?

Merci d'avance !

Bonsoir,
Le doctype que tu as déclaré est du HTML5 mais la balise META n'est pas conforme (correspond à HTML 4).
Tu devrais utiliser celle-ci :
<meta charset="utf-8" />

Testé OK sur Firefox.
Par ailleurs, dans tout langage, lorsque le nombre d'itérations est connu d'avance (10 dans le cas présent), il est plutôt conseillé d'utiliser une boucle FOR à la place du WHILE. Les deux solutions fonctionnent correctement toutefois...
Concernant la concaténation des valeurs, perso j'utiliserais une variable temporaire plutôt que d'accéder à chaque fois au DOM :
document.getElementById("theCount").innerHTML+=count+"<br>";

deviendrait :
texte+=count+"<br>";

Et immédiatement après la boucle :
document.getElementById("theCount").innerHTML=texte;

Ton code actuel fonctionne correctement mais puisque tu débutes en javascript, il est préférable de commencer à intégrer ces petits "trucs", communs à tous les langages là aussi, pour optimiser tes sources. Smiley cligne
Bonne continuation.
Modifié par sepecat (02 Oct 2016 - 20:07)
Ah merci !

J'utilisais bien cette balise-là avant, et ça marchait bien en effet.

Question subsidiaire : à quoi sert alors http-equiv="content-type" ?
Ctout a écrit :
Ah merci !
J'utilisais bien cette balise-là avant, et ça marchait bien en effet.
Question subsidiaire : à quoi sert alors http-equiv="content-type" ?

Normalement, c'est le serveur web qui doit transmettre au navigateur, via les entêtes HTTP, l'indication précisant le type de contenu (content-type) et dans quel jeu de caractères est encodée la page (content-encoding).
Parfois, le serveur n'est pas correctement configuré et cette information est absente ou erronnée.
Pour indiquer quand même au navigateur ce qu'il doit utiliser, on ajoute cette balise META (d'où le nom "http-equiv") avec la valeur correcte précisant le type de contenu (ex. "text/html" + éventuellement en paramètre le jeu de caractères par sécurité).
Ce n'est qu'un palliatif... et il vaut toujours mieux qu'un serveur web délivre des entêtes HTTP strictement conformes au contenu qu'il renvoie effectivement au client.
Modifié par sepecat (02 Oct 2016 - 20:11)