Tarun Rathore Ответов: 2

Как отобразить правильный счет викторины слайд-шоу ?


I have a multiple choice quiz for speed test. Each question appears
after every five seconds and then the next, like a slide show. The
timer runs simultaneously. The last page that appears is score summary.
I can't figure out how to show the correct score though I have written
codes for it. The summary page shows the score 0 each time.
Could you please help me. Thanks a lot.


Что я уже пробовал:

<body>

        <div id="container">
        <text> Time : <text id="time001"> 30 </text> </text> <br />
        <h1> Speed Test </h1>
        <button id="btn" onclick="begin001()"> Start </button>
    
         <form id="form">
         <div class="speed">
         <h2> Q.1 Who is the Prime Minister of India? </h2>
         <label> <input type="radio" name="q1" value="a" id="q1a"> Atal 
         Bihari </label> <br>
         <label> <input type="radio" name="q1" value="b" id="q1b"> 
         Narendra Modi </label> <br>
         <label> <input type="radio" name="q1" value="c" id="q1c"> 
         Rahul Gandhi </label> <br>
         <label> <input type="radio" name="q1" value="d" id="q1d"> 
         Soniya Gandhi </label> <br>
         </div>
    
          <div id="summary">
           <p> Score Summary </p>
           </div>
            </form>
           </div>
    </body>
    
    ```

         $('document').ready(function() {
         $(function() {
         $("#btn").click(function() {
         var interval = setInterval(function() {
         $("#form > div:first")
         .fadeIn(500)
         .next()
         .fadeOut(500)
         .end()
         .appendTo("#form");
          }, 5000);


```
          window.setTimeout(function() {
          clearInterval(interval);
          }, 35000);
          });
          });
          });


  ```

         function begin001() {
            c = 30;
         }
          var a = 0;
          a++;
          var b = 0;
          b++;
    
    ```
          function timer001() {
          c = c - 1;
          if (c < 30)
    
            {
                time001.innerHTML = c;
            }
    
            if (c < 1)
    
            {
                window.clearInterval(update);
    
            }
    
          }
    
          update = setInterval("timer001()", 1000);
    
    
    ```
    
          var q1 = document.getElementById("form")["q1"].value;
          var q2 = document.getElementById("form")["q2"].value;
          var q3 = document.getElementById("form")["q3"].value;
          var q4 = document.getElementById("form")["q4"].value;
          var q5 = document.getElementById("form")["q5"].value;
    
    ```
    
          var answers = ["b", "c", "a", "d", "c"];
          var score = 0;
          var total = 5;
          if (q1 == answers[0]) {
            score++
          }
          if (q2 == answers[1]) {
            score++
          }
          if (q3 == answers[2]) {
            score++
          }
          if (q4 == answers[3]) {
            score++
          }
          if (q5 == answers[4]) {
            score++
          }
    
    ```
          var result = document.getElementById("summary");
          result.innerHTML = "<p><p> You scored "+score+" out of "+total+" </p> 
          </p>";
    
    ```
          Expected: You scored 2 out of 5.
    
          Currently showing: You scored 0 out of 5.'

2 Ответов

Рейтинг:
2

Patrice T

Цитата:
Ожидаемо: вы набрали 2 балла из 5.
В настоящее время показывается: вы набрали 0 баллов из 5.

Этот шаг-отладка, замените таймер кнопкой и используйте отладчик, чтобы увидеть, что происходит внутри вашей страницы.

Ваш код ведет себя не так, как вы ожидаете, или вы не понимаете, почему !

Существует почти универсальное решение: запускайте свой код на отладчике шаг за шагом, проверяйте переменные.
Отладчик здесь, чтобы показать вам, что делает ваш код, и ваша задача-сравнить с тем, что он должен делать.
В отладчике нет никакой магии, он не знает, что должен делать ваш код, он не находит ошибок, он просто помогает вам, показывая, что происходит. Когда код не делает того, что ожидается, вы близки к ошибке.
Чтобы увидеть, что делает ваш код: просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик - Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010 - YouTube[^]

Отладка JavaScript[^]
Хром Инструменты Разработчика  |  Сеть  |  Разработчики Google[^]

Отладчик здесь только для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.


Рейтинг:
15

Dave Kreskowiak

Это признак смешанных кавычек в строке, которая показывает это сообщение. Измените символы, чтобы "


Tarun Rathore

Пожалуйста, немного уточните.

Dave Kreskowiak

У вас есть несоответствующие цитаты. Вы начали строковый литерал с a " символ, а затем попытался поместить партитуру в строку с помощью ' + score + ' Одинарные кавычки не соединяются с двойной кавычкой, с которой вы начали литерал. Вы не можете смешивать их!

result.innerHTML = "<p> You scored '+score+' out of '+total+ '</p>";

становится:
result.innerHTML = "<p> You scored "+score+" out of "+total+ "</p>";

Tarun Rathore

Большое спасибо за вашу помощь, но проблема все еще существует. Счет 0 каждый раз.

Dave Kreskowiak

Вы изменили вопрос и описание проблемы. То, что я вам сказал, соответствовало предыдущей версии вопроса.