Javascript无法正常工作

时间:2013-11-30 13:56:33

标签: javascript html

好吧,我已经为评估制作了一些JavaScript。一切正常,直到我使用switch语句调用新函数:

function differentComments(answer) {

当函数differentComments在那里时,程序似乎不再加载跟随函数:

function genQuestion() {

我的所有JavaScript代码都在下面(HTML为available on Pastebin):

var x, y; //the global variables

function aNumber() {
    return Math.floor(1 + Math.random() * 12);
}

function genQuestion()  {
    x = aNumber();
    y = aNumber();

    dout = document.getElementById('Question');
    dout.value = x + " times " + y;
}

function buttonPressed() {
    var input = document.getElementById('Typed').value;
    var answer = x * y;

    if (input == answer) {
        differentComments("Right");
        genQuestion();
    } else {
        differentComments("Wrong");
    }

    document.getElementById('Typed').value="";
}

function differentComments(answer)  {
    var random_number = Math.floor(1 + Math.random() * 4);

    if (answer == "Right")  {
        switch (random_number) {
        case 1:
            window.alert("Very Good!");
            break;
        case 2:
            window.alert("Excellent!");
            break;
        case 3:
            window.alert("Correct - Nice work!");
            break;
        case 4:
            window.alert("Correct - keep up the good work!");
            break;
        default:
            break;
        }

    } else (answer == "Wrong") {
        switch (random_number) {
        case 1:
            window.alert("No. Please try again.");
            break;
        case 2:
            window.alert("Wrong. Try once more.");
            break;
        case 3:
            window.alert("Incorrect – Don’t give up.");
            break;
        case 4:
            window.alert("No – keep trying.");
            break;
        default:
            break;
        }
    }
}

2 个答案:

答案 0 :(得分:1)

你的其他条款不正确。

        if (answer == "Right")  {
                switch(random_number)   {
                   ...
                }
        else (answer == "Wrong") {
        }

不会解析,因为第二个测试缺少if。

        if (answer == "Right")  {
                switch(random_number)   {
                   ...
                }
        else **if** (answer == "Wrong") {
        }

基本上你正在将if()视为switch(),并且这在语法上是不正确的。

当遇到这种情况时,你应该做的第一件事是使用jshint或jslint来检查你的代码的语法正确性。

答案 1 :(得分:1)

在您的代码块中:

if (answer == "Right")  {
      switch(random_number)   {
           ...
      }
else (answer == "Wrong") {
      switch(random_number)   {
           ...
      }
}

表示您放置if and else语句,只有当所有条件都返回false时才执行else条件。所以没有必要放置条件语句(就像你的情况一样 - else (answer == "Wrong") {))。

你可以简单地写一下:

if (answer == "Right")  {
      switch(random_number)   {
           ...
      }
else {
      switch(random_number)   {
           ...
      }
}

这意味着如果你的答案不等于Right,它总是转到其他陈述。

OR

如果您想检查更多条件,请使用else if(){}语句。

if (answer == "Right")  {
      switch(random_number)   {
           ...
      }
else if (answer == "Wrong") {
      switch(random_number)   {
           ...
      }
}

Read this