Javascript 选择题的循环?
建立一个测验。我有4个多选选项,我想用JS填充。每个选项都有文本和相应的图标。我让“问题”部分发挥作用,但我似乎无法让选择发挥作用。我试图遍历这4个选项(每个选项都有一个指定的数据值,该值在最后决定您的答案),但我无法从嵌套数组中访问这些选项,即使我只是console.log(问题[0][1]);有什么建议吗?我应该使用另一种for循环吗?我是否应该分解数组并分别遍历所有内容(这似乎不是很有效)Javascript 选择题的循环?,javascript,for-loop,Javascript,For Loop,建立一个测验。我有4个多选选项,我想用JS填充。每个选项都有文本和相应的图标。我让“问题”部分发挥作用,但我似乎无法让选择发挥作用。我试图遍历这4个选项(每个选项都有一个指定的数据值,该值在最后决定您的答案),但我无法从嵌套数组中访问这些选项,即使我只是console.log(问题[0][1]);有什么建议吗?我应该使用另一种for循环吗?我是否应该分解数组并分别遍历所有内容(这似乎不是很有效) 让问题=[{ 问题:“你介意人群吗?”, 图标:{ 选项1:“Q1_A.svg”, 选项2:“Q1
让问题=[{
问题:“你介意人群吗?”,
图标:{
选项1:“Q1_A.svg”,
选项2:“Q1_B.svg”,
选项3:“Q1_C.svg”,
选项4:“Q1_D.svg”,
},
选择:{
选择1:“人群不会打扰我”,
选择2:“我更喜欢走出老路”,
选项3:“我不管哪种方式”,
选项4:“人群意味着有值得一看的东西”,
}
},
{
问题:“你想在旅行中呆在哪里?”,
图标:{
选项1:“Q2_A.svg”,
选项2:“Q2_B.svg”,
选项3:“Q2_C.svg”,
选项4:“Q2_D.svg”,
},
选择:{
选择1:“人群不会打扰我”,
选择2:“我更喜欢走出老路”,
选项3:“我不管哪种方式”,
选项4:“人群意味着有值得一看的东西”,
}
},
{
问题:“你喜欢什么活动?”,
图标:{
选项1:“Q3_A.svg”,
选项2:“Q3_B.svg”,
选项3:“Q3_C.svg”,
选项4:“Q3\u D.svg”,
},
选择:{
选择1:“人群不会打扰我”,
选择2:“我更喜欢走出老路”,
选项3:“我不管哪种方式”,
选项4:“人群意味着有值得一看的东西”,
}
}
];
//转换为数组,以便可以在其上使用数组函数
const choice=Array.from(document.getElementsByClassName('choice_text');
ChoiceCounter=0;
choicesLoop=()=>{
choice.forEach(choice=>{
const number=choice.dataset['number'];
choice.innerHTML=questions.choices['choice'+number];
ChoiceCounter++;
});
};代码>
A
选项1
B
选项2
C
选项3
D
选项4
您需要将显示的问题编号传递到您的选项循环
(或者这可能就是选项计数器
在代码中的内容,但您忘记在正确的位置使用它)
或
让问题=[{
问题:“你介意人群吗?”,
图标:{
选项1:“Q1_A.svg”,
选项2:“Q1_B.svg”,
选项3:“Q1_C.svg”,
选项4:“Q1_D.svg”,
},
选择:{
选择1:“人群不会打扰我”,
选择2:“我更喜欢走出老路”,
选项3:“我不管哪种方式”,
选项4:“人群意味着有值得一看的东西”,
}
},
{
问题:“你想在旅行中呆在哪里?”,
图标:{
选项1:“Q2_A.svg”,
选项2:“Q2_B.svg”,
选项3:“Q2_C.svg”,
选项4:“Q2_D.svg”,
},
选择:{
选择1:“人群不会打扰我”,
选择2:“我更喜欢走出老路”,
选项3:“我不管哪种方式”,
选项4:“人群意味着有值得一看的东西”,
}
},
{
问题:“你喜欢什么活动?”,
图标:{
选项1:“Q3_A.svg”,
选项2:“Q3_B.svg”,
选项3:“Q3_C.svg”,
选项4:“Q3\u D.svg”,
},
选择:{
选择1:“人群不会打扰我”,
选择2:“我更喜欢走出老路”,
选项3:“我不管哪种方式”,
选项4:“人群意味着有值得一看的东西”,
}
}
];
//转换为数组,以便可以在其上使用数组函数
const choice=Array.from(document.getElementsByClassName('choice_text');
ChoiceCounter=0;
choicesLoop=(问题ID)=>{
choice.forEach(choice=>{
const number=choice.dataset['number'];
choice.innerHTML=问题[questionId]。选项['choice'+数字];
ChoiceCounter++;
});
};
选择循环(0)
A
选项1
B
选项2
C
选项3
D
选项4
您需要将显示的问题编号传递到您的选项循环
(或者这可能就是选项计数器
在代码中的内容,但您忘记在正确的位置使用它)
或
让问题=[{
问题:“你介意人群吗?”,
图标:{
选项1:“Q1_A.svg”,
选项2:“Q1_B.svg”,
选项3:“Q1_C.svg”,
选项4:“Q1_D.svg”,
},
选择:{
选择1:“人群不会打扰我”,
选择2:“我更喜欢走出老路”,
选项3:“我不管哪种方式”,
选项4:“人群意味着有值得一看的东西”,
}
},
{
问题:“你想在旅行中呆在哪里?”,
图标:{
选项1:“Q2_A.svg”,
选项2:“Q2_B.svg”,
选项3:“Q2_C.svg”,
选项4:“Q2_D.svg”,
},
选择:{
选择1:“人群不会打扰我”,
选择2:“我更喜欢走出老路”
choicesLoop = (questionId) => {
choice.forEach(choice => {
const number = choice.dataset['number'];
choice.innerHTML = questions[questionId].choices['choice' + number];
choicesCounter++;
});
};
choicesLoop = () => {
choice.forEach(choice => {
const number = choice.dataset['number'];
choice.innerHTML = questions[choicesCounter].choices['choice' + number];
choicesCounter++;
});
};