Javascript 使用本地存储获取多个值

Javascript 使用本地存储获取多个值,javascript,Javascript,我想检索创建任务的名称和日期。我设法将值taskMessage放入本地存储,但我也不知道如何添加taskName。这是我目前拥有的代码: $(document).ready(function () { var i = 0; for (i = 0; i < localStorage.length; i++) { var taskID = "task-" + i; $('.task-container').append("<li class='item-content

我想检索创建任务的名称和日期。我设法将值taskMessage放入本地存储,但我也不知道如何添加taskName。这是我目前拥有的代码:

$(document).ready(function () {

var i = 0;
for (i = 0; i < localStorage.length; i++) {
    var taskID = "task-" + i;

    $('.task-container').append("<li class='item-content' id='" + taskID + "'>" + localStorage.getItem(taskID) + "</li>");
}
$('.floating-button').on('click', function () {
    myApp.prompt('', 'Add Task', function (task) {
        if (task !== "") {
            myApp.prompt('', 'Choose time', function (time) {
                var d1 = new Date();
                d1.setHours(time, 0, 0, 0);
                var hour = d1.getHours();
                if (time > 0 && time < 25) {
                    var d2 = new Date();
                    var currenttime = d2.getHours();
                    if (time > currenttime) {
                        var taskID = "task-" + i;
                        var taskMessage = hour;
                        var taskName = task;
                        localStorage.setItem(taskID, taskMessage);
                        var newtask = '<li class="item-content ' + taskID + '"><div class="item-inner"><div class="item-title" >' + taskName + '</div><div class="item-after"> ' + taskMessage + ':00</div> </div></li>';
                        var taskitem = $('#' + taskID);
                        $('.task-container').append(newtask);
                    }
                    else {
                        myApp.addNotification({
                            message: 'Please choose a valide time period'
                        });
                    }
                }
                else {
                    myApp.addNotification({
                        message: 'Please choose a value between 1 and 24'
                    });
                }
            });
        }
        else {
            myApp.addNotification({
                message: 'Please enter a valid name'
            });
        }
    });
});
});
$(文档).ready(函数(){
var i=0;
对于(i=0;i0&&时间<25){
var d2=新日期();
var currenttime=d2.getHours();
如果(时间>当前时间){
var taskID=“任务-”+i;
var taskMessage=小时;
var taskName=任务;
setItem(taskID,taskMessage);
var newtask='
  • '+taskName+''+taskMessage+':00
  • '; var taskitem=$(“#”+taskID); $('.task container').append(newtask); } 否则{ myApp.addNotification({ 消息:“请选择有效的时间段” }); } } 否则{ myApp.addNotification({ 消息:“请选择一个介于1和24之间的值” }); } }); } 否则{ myApp.addNotification({ 消息:“请输入有效名称” }); } }); }); });
    如果您想在
    localStorage
    中存储两个不同的值,那么您可以这样做

    // Put the object into storage
    localStorage.setItem('task', JSON.stringify(obj));
    
    // Retrieve the object from storage
    var val = localStorage.getItem('obj');
    
    console.log('retrievedValue: ', JSON.parse(val));
    
    • 使用不同的键在localStorage中设置项两次

      localStorage.setItem("message", taskMessage);
      localStorage.setItem("name", taskName);
      
    • 将这两个值存储在一个对象中

      var obj = {
          "message": taskMessage,
          "name": taskName 
      }
      
      var val = localStorage.setItem("task", obj);
      
    typeof
    val
    :字符串
    val的值
    :[object]
    setItem
    方法在存储
    输入之前,将其转换为
    字符串

    试试这个:

    // Put the object into storage
    localStorage.setItem('task', JSON.stringify(obj));
    
    // Retrieve the object from storage
    var val = localStorage.getItem('obj');
    
    console.log('retrievedValue: ', JSON.parse(val));
    
    将项键和值另存为
    string
    ,因此使用对象/json对象调用setItem,必须通过
    json.stringify()
    方法将json序列化为字符串。获取值时,需要使用
    json.parse()
    方法将字符串解析为json对象

    试验
    您可以使用以下示例轻松地将值存储在localstorage中

    //Save the values to Localstorage
    localStorage.setItem('first','firstvalue');
    localStorage.setItem('second','secondvalue');
    
    //Retrieve the values from localstorage
    localStorage.getItem('first')
    //"firstvalue"
    localStorage.getItem('second')
    //"secondvalue"
    

    首先,应该将数据放入变量中

    var getData = 
    {
       "firstData":"data1",
       "secondData":"data2",
       "thirdData": "data3"
    }
    
    然后您可以在localStorage中设置上述数据

    localStorage.setItem('dataKey', JSON.stringify(getData ));
    
    那就

    var val = localStorage.getItem('dataKey');
    

    享受

    我不太明白最后一部分。那么如何从对象中获取值呢?是localStorage.getItem(“taskID”,obj(0));例如,要获取值:
    var a=localStorage.setItem(“任务”)
    则可以使用
    oprator进行访问
    a.message
    &
    a.name
    @FrederikDelaet感谢您纠正我的错误。我更新了我的答案,请检查我希望它能满足您的期望。谢谢。我要试试这个。恐怕我不能用了。这是我第一次使用本地存储,所以有点困难。目前我有:
    var obj={“message”:taskMessage,“name”:taskName}localStorage.setItem('task',JSON.stringify(obj));var val=localStorage.getItem('obj');log(taskName,JSON.parse(val))