我正在做一个小项目,尝试从LocalStorage加载一些东西并将其附加到我的html页面。
是这样的:
.fc-day-grid-event .fc-content .fc-title{
white-space: normal;
}
我已经设置好了,以便在我的身体标签中调用此功能
function fetchList() {
var list = JSON.parse(localStorage.getItem('list'));
var listList = document.getElementById('listList');
for (var i = 0; i < list.length; i++) {
.....stuff
}
我目前在本地存储中什么都没有保存,这在FOR循环语句中给我一个错误,尤其是.length。我知道那里什么都没有,但不是会跳到循环结束吗?
相反,它给sme这个错误:
未捕获的TypeError:无法读取null的属性“ Length”
有没有理由不起作用?我在做什么错了?
答案 0 :(得分:2)
如果还没有存储空间,则JSON.parse()将返回null
。
因此,var list
也将是null
。
并且null
没有length
属性,可以解释您的错误,因为基于长度的for循环需要该长度为数字。
首先尝试检测JSON字符串的存在:
var storedJSON = localStorage.getItem('list');
if ( storedJSON ) {
var list = JSON.parse( storedJSON );
// continue code
}
答案 1 :(得分:0)
我认为您必须先检查是否为空
if (variable == null){
// your code here.
}