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