使用Javascript进行测试。从和对象获取数组值。

使用Javascript进行测试。从和对象获取数组值。,javascript,html,Javascript,Html,我试图用Javascript创建一个简单的测验。我正在努力掌握如何从对象迭代数组值的概念。我最终想要显示一个单选按钮,其值作为答案的选择。如果有人能给我指出正确的方向,我会非常感激 小提琴: 这是我的密码: HTML 您需要将一个与按钮关联,以调用JavaScript的相关部分。通读这个例子 另一方面,使用JavaScript进行测验可能不是一个好主意,因为可以使用view source查看答案。我建议使用PHP从数据库中获取结果。首先将单击事件附加到下一步按钮,调用populateQuest

我试图用Javascript创建一个简单的测验。我正在努力掌握如何从对象迭代数组值的概念。我最终想要显示一个单选按钮,其值作为答案的选择。如果有人能给我指出正确的方向,我会非常感激

小提琴:

这是我的密码:

HTML

您需要将一个与按钮关联,以调用JavaScript的相关部分。通读这个例子


另一方面,使用JavaScript进行测验可能不是一个好主意,因为可以使用view source查看答案。我建议使用PHP从数据库中获取结果。

首先将单击事件附加到下一步按钮,调用populateQuestion(),使用计数器迭代所有问题数组,并使用I作为计数器变量

nextButton.onclick = function() {
    /*itterate through questions*/    
    if(i>allQuestions.length -1){/*go to first when reached last*/
       i=0;       
    }    
    populateQuestion(i);
    i++;
};
通过allQuestions数组反复搜索问题标题和选项,如下所示:

function populateQuestion(qNum) {
    var individualQuestion = allQuestions[i];
    questionTitle.innerText = individualQuestion.question;

    selectionList.innerHTML = ""; //reset choices list
    for(key in individualQuestion.choices){
        var radioBtnName = "question"+i+"_choice";
        var choiceText = individualQuestion.choices[key];
        selectionList.appendChild(createLi(radioBtnName,choiceText));
    }
}
将动态li和单选按钮创建功能编写为:

function createLi(name, choiceText) {
        var e = document.createElement('li');
        var radioHtml = '<input type="radio" name="' + name + '"';    
        radioHtml += '/>';
        radioHtml += choiceText;        
        e.innerHTML = radioHtml;        
        return e;
    }
函数createLi(名称,choiceText){
var e=document.createElement('li');
var radioHtml='';
radioHtml+=选择文本;
e、 innerHTML=radioHtml;
返回e;
}

同样的,请

@Renay,你对这个解释没意见吧?哇,这个解释真是太好了!非常感谢你的帮助,非常感谢。
function populateQuestion(qNum) {
    var individualQuestion = allQuestions[i];
    questionTitle.innerText = individualQuestion.question;

    selectionList.innerHTML = ""; //reset choices list
    for(key in individualQuestion.choices){
        var radioBtnName = "question"+i+"_choice";
        var choiceText = individualQuestion.choices[key];
        selectionList.appendChild(createLi(radioBtnName,choiceText));
    }
}
function createLi(name, choiceText) {
        var e = document.createElement('li');
        var radioHtml = '<input type="radio" name="' + name + '"';    
        radioHtml += '/>';
        radioHtml += choiceText;        
        e.innerHTML = radioHtml;        
        return e;
    }