循环不工作时使用JavaScript

循环不工作时使用JavaScript,javascript,html,while-loop,Javascript,Html,While Loop,我一直在尝试开发javascript来识别名称、显示名称、长度和字母以及它们出现的位置,但我似乎无法让while循环正常工作。谁能帮我一下吗,谢谢 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html > <head> <title> jav

我一直在尝试开发javascript来识别名称、显示名称、长度和字母以及它们出现的位置,但我似乎无法让while循环正常工作。谁能帮我一下吗,谢谢

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html >
<head>
    <title>
        javascript
    </title>
    <script>
        function displayName(){

        var str = prompt("enter your name:");
        var len = str.length;
        var chara = str.charAt(0);
        var n = chara.indexOf(0);


        while(chara <= len){
                document.write("<br>the letter " + chara + " is number " + n);
                chara++;
            }

           document.write("the name entered is: " + str + "<br></br>" + "the length is " +  len);

            }

     </script>


</head>
  <body>

     <script>
      displayName();    
     </script>

    </body>
</html>    

javascript
函数displayName(){
var str=prompt(“输入您的姓名:”);
var len=str.length;
var-chara=str.charAt(0);
var n=字符索引(0);

while(chara看起来您正在将
chara
设置为返回字符串的第一个字符。请尝试将其设置为0

var chara=0;


看看这是否有效。

您的循环使用了错误的迭代器

function displayName(){

    var str = prompt("enter your name:");
    var len = str.length;
    var chara = 0;

    while(chara < len){
        document.write("<br>the letter " + str.charAt(chara) + " is number " + (chara + 1));
        chara++;
    }

    document.write("<br/>the name entered is: " + str + "<br></br>" + "the length is " +  len);


}
函数displayName(){
var str=prompt(“输入您的姓名:”);
var len=str.length;
var-chara=0;
while(chara字母“+str.charAt(chara)+”是数字“+(chara+1));
chara++;
}
document.write(“
输入的名称为:“+str+”

“+”长度为“+len”); }
您已将
chara
设置为第一个字符“A”例如,当A递增错误的变量时,您尝试执行
。而不是递增
chara
,您应该递增
n
并重置
chara
,以指向字符串的下一个字符。您还不正确地使用了
indexOf
,只需将
n=0;
设置为开始

您的循环将一个字符(名称的第一个字符)与一个数字(名称的长度)进行比较。有几种方法可以完成您试图完成的任务

如果你想继续使用while循环,你应该跟踪一个用作计数器的变量,它统计你在循环的哪个迭代。这将替换chara变量

函数displayName(){
var str=prompt(“输入您的姓名:”);
var len=str.length;
var计数=0;
while(计数字母“+str.charAt(count)+”是数字“+(count+1);
计数++;
}
document.body.innerHTML++=”
输入的名称为:“+str+”

“+”长度为“+len; }
我已将对
document.write()
的调用替换为
innerHTML
参数,因为这被认为是更好的做法,但您可以使用其中任何一种


顺便说一句,在这个任务中使用for循环更具语义。

不要使用
文档。编写
,添加一个节点(
或类似的节点)并更新它。当然。但我不打算为他重写它;只需回答给定的问题。
function displayName(){

    var str = prompt("enter your name:");
    var len = str.length;
    var count = 0;


    while(count < len){
        document.body.innerHTML += "<br>the letter " + str.charAt(count) + " is number " + (count+1);
        count++;
    }

    document.body.innerHTML += "<br>the name entered is: " + str + "<br></br>" + "the length is " +  len;

}