我将表格存储为 localstorage 中的JSON数据中的字符串。我想将此处存储的字段之一与单独的javascript变量进行比较。
以下是我的尝试:
var goalsStr = localStorage.getItem("goals");
var goalsObj = JSON.parse(goalsStr);
for (i=0; i<goalsObj.goals.length; i++) {
if (goal==goalsObj.goals[i].goal) {
//.....
//.....
}
}
但它不起作用。在遇到一些问题后,我认为问题在于比较(goal == goalsObj.goals[i].goal)
。
这是实际存储在localStorage中“目标”内的值:
var data = '{"goals": [{"goal":"'+goal+'","duedate":"'+date2+'","noofdays":"'+diff+'","active":"'+active+'"}]}';
localStorage.setItem("goals",data);
这是一个存储在其中的对象数组。
所有这些'diff','duedate'都是从用户那里获取的HTML表单数据。
怎么了?我该怎么办?
答案 0 :(得分:0)
数据似乎已经是有效的JSON。你为什么要字符串呢?我想你想做的只是
var data = '{"goals": [{"goal":"'+goal+'","duedate":"'+date2+'","noofdays":"'+diff+'","active":"'+active+'"}]}';
localStorage.setItem("goals", data);
然后当您将该值拉回时,通过
将其转换为JavaScript对象var obj = JSON.parse(localStorage.getItem("goals"));