javascript - 未捕获的类型错误:无法读取未定义的属性“0”(测验应用程序)
问题描述
我在 localStorage 中有一个数组,我一直在尝试将它传递给一个变量JSON.parse()
let questions = JSON.parse(localStorage.getItem("questions"));
console.log(questions[0]);
questions[0]
日志_
0: {
numb: 1,
question: "What something ....?",
answer: "choice a",
options: Array(4)
}
1: {
numb: 2,
question: "What something 2....?.",
answer: "choice b",
options: Array(4)
}
2: {
numb: 3,
question: "What something 3....?",
answer: "choice c",
options: Array(4)
}
但是当我尝试将其放入变量中时,如下所示
let option_tag = '<div class="option"><span>'+ questions[index].options[0] +'</span></div>'
出现此错误Uncaught TypeError: Cannot read property '0' of undefined
我已经搜索了所有内容,但没有成功。我做错了什么?
编辑:发生错误的代码
function showQuetions(index){
const que_text = document.querySelector(".que_text");
//creating a new span and div tag for question and option and passing the value using array index
let que_tag = '<span>'+ questions[index].numb + ". " + questions[index].question +'</span>';
let option_tag = '<div class="option"><span>'+ questions[index].options[0] +'</span></div>'
+ '<div class="option"><span>'+ questions[index].options[1] +'</span></div>'
+ '<div class="option"><span>'+ questions[index].options[2] +'</span></div>'
+ '<div class="option"><span>'+ questions[index].options[3] +'</span></div>';
que_text.innerHTML = que_tag; //adding new span tag inside que_tag
option_list.innerHTML = option_tag; //adding new div tag inside option_tag
const option = option_list.querySelectorAll(".option");
// set onclick attribute to all available options
for(i=0; i < option.length; i++){
option[i].setAttribute("onclick", "optionSelected(this)");
}
}
解决方案
推荐阅读
- html - 为什么我的子菜单没有显示定义的悬停变化?
- python - Web 抓取数据,然后在数据框上显示和更新它
- node.js - NodeJS 进程退出未运行 SQL 查询
- php - Google Analytics Data API 在尝试运行报告时返回 400 invalid_scope
- r - 使用 geom_violin 分层小提琴图以比较分布
- r - if_else 与多个 else 条件
- ios - 使用自定义 UICollectionViewFlowLayout 重新加载 CollectionView 单元
- databricks - 如何在 databricks initscript 中访问机密
- neo4j - Neo4j 正确加载 .dump 文件的问题,但无法显示数据库
- download - 如何从谷歌驱动器文件夹中随机下载许多文件