Сравнение строк Javascript

0

Итак, я пытаюсь создать интерактивную викторину, и я почти закончил. Только часть проверки ответа терпит неудачу. У меня есть массивы для вопросов, вариантов и правильного ответа, но сравнение просто не срабатывает.

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>

По какой причине это просто не работает, и я не понимаю, почему.

  • 7
    Где i определен?
  • 0
    Прикрепите точку останова и посмотрите, соответствуют ли selected вами переменные и переменные answer значения, которые вы ожидали. Не видя больше вашего кода, мы просто догадываемся. Вы можете положить это в скрипку ?
Показать ещё 1 комментарий
Теги:

2 ответа

1
Лучший ответ

Кажется, вы добавляете пробелы в начало значения, но никогда не удаляете пробелы перед сравнением. По крайней мере, я не вижу, что вы делаете. Попробуй это.

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

Вы должны обрезать оба значения во время сравнения. Что-то вроде этого.

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню