Я делаю все вопросы в отдельной структуре.
Примерно такvar data = [
{
name:'Психотип - это',
radio:['темперамент','акцентуация','соционический тип','экстраверсия','архетип','характер','ничего из этого'],
answer: 7,
},
{
name:'Что позволяет игра с точки зрения социологов?',
checkbox:['выразить себя','снять запреты','снять напряжение',],
answer: 1 + 10, //+100
},
{
name:'Что есть игра с точки зрения биогенетиков?',
checkbox:['атавизм','приготовление к жизни','снятие напряжения',],
answer: 1, // +10 +100,
},
// и так далее
];
А на экране показываю одновременно только один вопрос и кнопку "Дальше". То есть DOM формируется динамически. Причем, при показе вопроса варианты ответов перемешиваются (кроме вариантов "ничего из вышеперечисленного" и "всё вышеперечисленное", которые добавляются в конец).
Собственно, порядок вопросов тоже можно перемешать. Но здесь уже начинаются тонкости. Потому что некоторые вопросы стоит показывать в определенном порядке. А некоторые вопросы не стоит показывать вообще, если был дан неправильный ответ на определенный предыдущий вопрос. Не знаю, стоит ли вам заморачиваться так, как я.
К слову, тест
знаний делать на js - так себе идея. Ведь шпаргалка открывается в два клика (или комбинацией Ctrl+U) и читается без навыков программирования. По уму вопросы и ответы должны перемешиваться на сервере, id ответов должны быть каждый раз произвольные типа fGx9PeL7, подсказки ответа в js коде не должно быть вообще (проверка ответа только на сервере), вопросы должны отдаваться не все сразу, а порциями через ajax, ну и на каждый вопрос должно отводиться ограниченное время. А если лимита времени нет, то придется физически стоять над душой респондента и смотреть, чтобы он не лез в Гугл за подсказками. Ведь тест
знаний должен проверять знания в предметной области, а не хакерские способности или скорость гугления.