目前正在尝试完成Uni任务的完整noob。我们正在使用HTML,css和JQuery创建一个Web应用程序。我在网上搜索了一个答案但却无法弄清楚我应该做些什么。
我已经设置了一个页面,用户可以在其中输入班次的详细信息,当他们提交班次时,数据会被推送到使用JSON stringify存储在localStorage中的数组中。那部分很有效,在这里:
var shift = {'location':$('#shift_location').val(), 'start_time':$('#shift_start_time').val(), 'end_time':$('#shift_end_time').val()};
var shift_list = JSON.parse(localStorage.shift);
shift_list.push(shift);
localStorage.shift = JSON.stringify(shift_list);
然而,我需要采取最后添加的'shift_location''shift_start_time'和'shift_end_time'并将其粘贴在页面上的div中。 这是我到目前为止所提出的:
var result = JSON.parse(localStorage.shift);
$.each(result, function(k, v) {
$('.current_shift').text(k + ":" + v);
});
但是,页面上显示的内容为:0:[object Object]
。
关于如何解决这个问题的任何想法都会很棒。就像我说的那样,我是一个完整的菜鸟,这是我第一次在这里发帖,所以如果我错过了任何重要的代码或错误地将问题框起来,请提前道歉。
由于 詹姆斯
答案 0 :(得分:3)
你有一个对象数组,你必须先得到数组中的最后一个对象:
var result = JSON.parse(localStorage.getItem('shift'));
var obj = result.pop();
$('.current_shift').text(obj.start_time + ":" + obj.end_time);
答案 1 :(得分:1)
这是一个数组shift_list
。
所以看起来locationStorage.shift
是一个数组。这就是k
是整数的原因。试试这个:
$.each(result, function(k, v) {
$('.current_shift').text(v.location);
});
您将看到它是一个对象,因为您的班次存储在对象中。对于调试,您可以这样做:
$.each(result, function(k, v) {
console.log(v);
$('.current_shift').text(v.location);
});
打开Chrome,然后查看控制台,您将看到对象。