Javascript函数未定义

Javascript函数未定义,javascript,html,Javascript,Html,开始学习JavaScript,所以我决定制作一个程序,接收一个字符串,然后返回相同的字符串,但每个字符上有不同的颜色 不知道为什么在编译时,当我调用彩虹函数时,函数没有定义。 另外,我正在尝试打印字符串,但我不确定是否正确。任何符合逻辑和风格的建议和编辑都将不胜感激 <script> function Rainbow(x) { var mystring = String(x);

开始学习JavaScript,所以我决定制作一个程序,接收一个字符串,然后返回相同的字符串,但每个字符上有不同的颜色

不知道为什么在编译时,当我调用彩虹函数时,函数没有定义。 另外,我正在尝试打印字符串,但我不确定是否正确。任何符合逻辑和风格的建议和编辑都将不胜感激

<script>
    function Rainbow(x) {
        var mystring = String(x);                                              @* convert to string*@
        var Stringlength = mystring.lenth;                                     @* length fo string *@
        var rainbowstring = new Array(Stringlength);                           @* create array of appropriate size*@
        var counter = 0;
        var clr, letter;
        while (counter < Stringlength) {
            letter = mystring.charAt(counter);
            var randomnumber = Math.floor(Math.random() * 10);                     @* random number generator --> 11 means 0-10 *@        
            switch (randomnumber) {
                case 0: clr = #FF0000; break;
                case 1: clr = #00FF00; break;
                case 2: clr = #0000FF; break;
                case 3: clr = #FF00FF; break;
                case 4: clr = #000000; break;
                case 5: clr = #00FFFF; break;
                case 6: clr = #33FFFF; break;
                case 7: clr = #33FF00; break;
                case 8: clr = #FFFF00; break;
                case 9: clr = #FF66CC; break;
            }
            rainbowstring[counter] = <span style = 'color:"+clr+"'>"+letter+"</span>;                              @* assign color *@
            counter++;                                                         @* increment *@
        }
        return rainbowstring;
    }

    @* need something that generates colors *@
    @* assigns colors to text *@

</script>

<form>
    Enter String: <input type ="text" name ="rainbowstring" id ="rainbowinput"/><br>
</form>

<button
        type = "button" onclick = "Rainbow(document.getElementById('rainbowinput').value)" > Rainbow Generator
</button>

你管它叫什么?在我看来,它不应该给你未定义的

你做错了

rainbowstring[counter] = <span style = 'color:"+clr+"'>"+letter+"</span>; 

我也不确定你是否能用连线长度来考虑用SrProf之类的代替它< /P> < P>你把它叫做哪里?在我看来,它不应该给你未定义的

你做错了

rainbowstring[counter] = <span style = 'color:"+clr+"'>"+letter+"</span>; 

<>我也不确定你是否能用字长来考虑用String之类的替换它< /P> < P>所有的颜色都应该是一个字符串。< /P>
   switch (randomnumber) {
        case 0: clr = '#FF0000'; break;
        case 1: clr = '#00FF00'; break;
        case 2: clr = '#0000FF'; break;
        case 3: clr = '#FF00FF'; break;
        case 4: clr = '#000000'; break;
        case 5: clr = '#00FFFF'; break;
        case 6: clr = '#33FFFF'; break;
        case 7: clr = '#33FF00'; break;
        case 8: clr = '#FFFF00'; break;
        case 9: clr = '#FF66CC'; break;
    }

所有颜色都应该是字符串

   switch (randomnumber) {
        case 0: clr = '#FF0000'; break;
        case 1: clr = '#00FF00'; break;
        case 2: clr = '#0000FF'; break;
        case 3: clr = '#FF00FF'; break;
        case 4: clr = '#000000'; break;
        case 5: clr = '#00FFFF'; break;
        case 6: clr = '#33FFFF'; break;
        case 7: clr = '#33FF00'; break;
        case 8: clr = '#FFFF00'; break;
        case 9: clr = '#FF66CC'; break;
    }

用一点jQuery

jQuery

HTML


用一点jQuery

jQuery

HTML


您应该将clr值设置为字符串。@DanielA.White我不知道该怎么做。你是说类似“33FFFF”的东西吗?你还输入了一个错误:mystring.lenth应该是mystring.length。@user814064,这完全没有必要;函数语句在这里可以正常工作。您应该将clr值设置为字符串。@DanielA.White我不知道该怎么做。你是说类似“33FFFF”的东西吗?你还输入了一个错误:mystring.lenth应该是mystring.length。@user814064,这完全没有必要;函数语句在这里工作正常。@Liondancer请包含该代码,可能是因为脚本标记不在正文的末尾element@Liondancer将脚本放在按钮下我不认为将脚本放在函数下会有帮助。首先定义函数,然后再调用它。你需要relax@Liondancer好的,别听我说,我只是想试试。@Liondancer请把代码包括进去,可能是因为你的脚本标签不在你身体的末端element@Liondancer将脚本放在按钮下我不认为将脚本放在函数下会有帮助。首先定义函数,然后再调用它。你需要relax@Liondancer好吧,别听我说,我只是想试试。
   switch (randomnumber) {
        case 0: clr = '#FF0000'; break;
        case 1: clr = '#00FF00'; break;
        case 2: clr = '#0000FF'; break;
        case 3: clr = '#FF00FF'; break;
        case 4: clr = '#000000'; break;
        case 5: clr = '#00FFFF'; break;
        case 6: clr = '#33FFFF'; break;
        case 7: clr = '#33FF00'; break;
        case 8: clr = '#FFFF00'; break;
        case 9: clr = '#FF66CC'; break;
    }
var rbow, ltrColor;
var colors = new Array('00','33','66','99','CC','FF');
$('#rainbower').click(function() {
    var blah = $('#rainbowinput').val();
    var lenBlah = blah.length;
    rbow = "";
    for (c = 0; c < lenBlah; c++) {
        l = blah.charAt(c);
        ltrColor = "#";
        for (rgb = 0; rgb < 3; rgb++) {
            rndColor = (Math.floor(Math.random() * 6));
            ltrColor += colors[rndColor];
        }
        rbow += "<span style='color:" + ltrColor + "'>" + l + "</span>";
    }
     $('#rainbowoutput').html(rbow);
});
<form>
    Enter String:
    <input type="text" name="rainbowstring" id="rainbowinput" />
    <br />
</form>
<button type="button" id="rainbower">Rainbow Generator</button>
<div id="rainbowoutput"></div>