0

我是 HTML5 和 JavaScript 的新手,所以这可能是一个愚蠢的问题,但是当我尝试执行此代码时,它会undefined在莫尔斯答案之前添加。我一点也不知道为什么,而且相当广泛的互联网搜索没有产生任何结果。我认为问题可能在于将变量打印output到 HTML,但我不知道是什么使它 add undefined.

<html>
<head>
    <title>Morse Code</title>
    <script type="text/javascript">
        function whole(){
            function convert(input){
                 for (var i=0; i<input.length; i++){
                    if (input.charAt(i)=="a"||input.charAt(i)=="A"){
                        output=output+".-/";}
                    else if (input.charAt(i)=="b"||input.charAt(i)=="B"){
                        output=output+"-.../";}
                    else if (input.charAt(i)=="c"||input.charAt(i)=="C"){
                        output=output+"-.-./";}
                    else if (input.charAt(i)=="d"||input.charAt(i)=="D"){
                        output=output+"-../";}
                    else if (input.charAt(i)=="e"||input.charAt(i)=="E"){
                        output=output+"./";}
                    else if (input.charAt(i)=="f"||input.charAt(i)=="F"){
                        output=output+"..-./";}
                    else if (input.charAt(i)=="g"||input.charAt(i)=="G"){
                        output=output+"--./";}
                    else if (input.charAt(i)=="h"||input.charAt(i)=="H"){
                        output=output+"..../";}
                    else if (input.charAt(i)=="i"||input.charAt(i)=="I"){
                        output=output+"../";}
                    else if (input.charAt(i)=="j"||input.charAt(i)=="J"){
                        output=output+".---/";}
                    else if (input.charAt(i)=="k"||input.charAt(i)=="K"){
                        output=output+"-.-/";}
                    else if (input.charAt(i)=="l"||input.charAt(i)=="L"){
                        output=output+".-../";}
                    else if (input.charAt(i)=="m"||input.charAt(i)=="M"){
                        output=output+"--/";}
                    else if (input.charAt(i)=="n"||input.charAt(i)=="N"){
                        output=output+"-./";}
                    else if (input.charAt(i)=="o"||input.charAt(i)=="O"){
                        output=output+"---/";}
                    else if (input.charAt(i)=="p"||input.charAt(i)=="P"){
                        output=output+".--./";}
                    else if (input.charAt(i)=="q"||input.charAt(i)=="Q"){
                        output=output+"--.-/";}
                    else if (input.charAt(i)=="r"||input.charAt(i)=="R"){
                        output=output+".-./";}
                    else if (input.charAt(i)=="s"||input.charAt(i)=="S"){
                        output=output+".../";}
                    else if (input.charAt(i)=="t"||input.charAt(i)=="T"){
                        output=output+"-/";}
                    else if (input.charAt(i)=="u"||input.charAt(i)=="U"){
                        output=output+"..-/";}
                    else if (input.charAt(i)=="v"||input.charAt(i)=="V"){
                        output=output+"...-/";}
                    else if (input.charAt(i)=="w"||input.charAt(i)=="W"){
                        output=output+".--/";}
                    else if (input.charAt(i)=="x"||input.charAt(i)=="X"){
                        output=output+"-..-/";}
                    else if (input.charAt(i)=="y"||input.charAt(i)=="Y"){
                        output=output+"-.--/";}
                    else if (input.charAt(i)=="z"||input.charAt(i)=="Z"){
                        output=output+"--../";}
                    else if (input.charAt(i)=="1"){
                        output=output+".----/";}
                    else if (input.charAt(i)=="2"){
                        output=output+"..---/";}
                    else if (input.charAt(i)=="3"){
                        output=output+"...--/";}
                    else if (input.charAt(i)=="4"){
                        output=output+"....-/";}
                    else if (input.charAt(i)=="5"){
                        output=output+"...../";}
                    else if (input.charAt(i)=="6"){
                        output=output+"-..../";}
                    else if (input.charAt(i)=="7"){
                        output=output+"--.../";}
                    else if (input.charAt(i)=="8"){
                        output=output+"---../";}
                    else if (input.charAt(i)=="9"){
                        output=output+"----./";}
                    else if (input.charAt(i)=="0"){
                        output=output+"-----/";}
                    else if (input.charAt(i)==" "){
                        output=output+"//";}
                    else{output=output;}
                 }
            document.getElementById('results').innerHTML=output;
            }
            var start = prompt ("Enter your sentence:");
            convert(start);
            var output = document.getElementById('results').innerHTML;
            }
    </script>
    <style>
        body{
            text-align:center;
        }
        p{
            font-size:23px;
        }
    </style>
</head>
<body>
    <h1>Clicka de button below to do some morsey codes.</h1>
    <button onclick="whole()">Try it out!</button>
    <p id="results">Your sentence will appear here</p>
</body>
</html>
4

1 回答 1

2

您需要在调用output 之前convert()进行初始化。


注意

else{output=output;}

是无意义的操作。

于 2013-10-28T03:48:20.793 回答