2 votes

La balise h1 ne fonctionne pas correctement en javascript

Je suis un novice en JavaScript et j'ai besoin d'aide. Je dois afficher le nom[i] dans un en-tête h1, donc disons par exemple que j'écris "John", il sera affiché comme suit

nhoJ

mais lorsque j'essaie de placer l'en-tête h1 autour de name[i] tel qu'il est maintenant, il s'affiche comme ceci :

n
h
o
J

Quelqu'un peut-il m'aider à mettre un en-tête h1 autour de name[i] et à le faire s'afficher correctement ?

<html>
<body>
    <script>
        var namIn = window.prompt("Enter Name, separated by space:" ); 
        var namAr = namIn.split("");
        var namArLen = namAr.length; 
        document.write(namAr + "<br /> Length: " + namArLen + "<br />"); 
        var name = namIn;
        for(var i = name.length - 1; i >= 0; i--) {
            document.write( "<h1>" + name[i] + "</h1>" );
        }
    </script> 
</body>
</html>

5voto

user714965 Points 14264

Ouvrez le <h1> avant la boucle et la fermer après la boucle :

document.write("<h1>");
for(var i = name.length - 1; i >= 0; i--) {
   document.write(name[i]);
}
document.write("</h1>");

2voto

Sani Huttunen Points 10433
<html>
 <body>
    <script>
        var namIn = window.prompt("Enter Name, separated by space:" ); 
        var namAr = namIn.split("");
        var namArLen = namAr.length; 
        document.write(namAr + "<br /> Length: " + namArLen + "<br />"); 
        var name = namIn;
        document.write("<h1>");
        for(var i = name.length - 1; i >= 0; i--) {
            document.write(name[i]);
        }
        document.write("</h1>");
    </script> 
  </body>
</html>

au lieu de la boucle :

document.write("<h1>" + name.reverse() + "</h1>");

0voto

doniyor Points 16797

Vous donnez h1 dans chaque boucle, pour résoudre votre problème, faites cette étape

pseudo-code :

open h1
loop 
  name[i]
close h1

C'est tout.

0voto

Matthew Points 265

Vous créez un nouveau nœud pour chaque lettre, vous devez concaténer les caractères puis écrire le nœud html, essayez quelque chose comme ceci :

var newName = "";
for(var i = name.length - 1; i >= 0; i--) {
    //reverse.push(name[i]);
    newName += name[i];
}
document.write( "<h1>" + newName + "</h1>" );

0voto

Fear Points 31

Vous écrivez trop <h1> balises. Chacune de ces balises écrit une ligne dans le document.

Chaque caractère apparaît donc sur une ligne distincte.

Vous devez inclure le nom entier dans un seul et unique <h1> étiquette.

Vous pouvez le faire en :

document.write("<h1>");
for(var i = name.length - 1; i >= 0; i--) {
    document.write(name[i]);
}
document.write("</h1>");

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X