Javascript字符串比较

时间:2014-04-21 14:04:03

标签: javascript html

所以,我试图创建交互式测验,我几乎完成了。只有答案检查部分失败了。我有问题,选项和正确答案的数组,但比较只是失败。

function check(clicked_id)
{
    document.getElementById("Question").value=" " + questionArray[i];
    document.getElementById("OptionA").value=" " + aArray[i]; 
    document.getElementById("OptionB").value=" " + bArray[i]; 
    document.getElementById("OptionC").value=" " + cArray[i]; 
    document.getElementById("OptionD").value=" " + dArray[i]; 

    var selected = document.getElementById(clicked_id).value;
    var answer = answerArray[i];

    document.getElementById("text").innerHTML = answer + "<br>" + selected;

    if (selected == answer) {
        document.getElementById("comparison").innerHTML = "Correct";
    } else {
        document.getElementById("comparison").innerHTML = "Wrong";
    }   
}

html部分是

<input onclick="check(this.id)" type="button" value="Click here to start" id="Question" /><br><br>
<input onclick="check(this.id)" type="button" value="" id="OptionA" />
<input onclick="check(this.id)" type="button" value="" id="OptionB" />
<input onclick="check(this.id)" type="button" value="" id="OptionC" />
<input onclick="check(this.id)" type="button" value="" id="OptionD" />
<div id="text"></div>
<div id="comparison"></div>

因为什么原因它不会工作,我不明白为什么。

2 个答案:

答案 0 :(得分:1)

您似乎在值的前面添加了空格,但在比较之前从不删除空格。至少我看不出你是否这样做。试试这个。

var selected = document.getElementById(clicked_id).value.trim();

答案 1 :(得分:0)

您应该在比较期间修剪两个值。像这样的东西。

if (selected.trim() == answer.trim()) {
    document.getElementById("comparison").innerHTML = "Correct";
} else {
    document.getElementById("comparison").innerHTML = "Wrong";
}