te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>javascript - Get multiple values with local storage - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Get multiple values with local storage - Stack Overflow

programmeradmin4浏览0评论

I'd like to retrieve the name and the date of created tasks. I managed to put the value taskMessage in local storage, but I don't know how to add taskName as well. This is the code I currently have :

$(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'
            });
        }
    });
});
});

I'd like to retrieve the name and the date of created tasks. I managed to put the value taskMessage in local storage, but I don't know how to add taskName as well. This is the code I currently have :

$(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'
            });
        }
    });
});
});
Share Improve this question edited Mar 4, 2017 at 13:01 vsync 130k59 gold badges340 silver badges421 bronze badges asked Mar 4, 2017 at 12:28 Frederik DelaetFrederik Delaet 211 gold badge1 silver badge5 bronze badges
Add a ment  | 

4 Answers 4

Reset to default 8

First you should get the data into a variable

var getData = 
{
   "firstData":"data1",
   "secondData":"data2",
   "thirdData": "data3"
}

Then you can set the above data's in localStorage...

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

Then get....

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

Enjoy!!!

If you want to store two different values in localStorage then you can do somrthing like this :

  • setItem in localStorage two times with different keys.

    localStorage.setItem("message", taskMessage);
    localStorage.setItem("name", taskName);
    
  • Store both the values in an object.

    var obj = {
        "message": taskMessage,
        "name": taskName 
    }
    
    var val = localStorage.setItem("task", obj);
    

typeof val: string
Value of val: [object Object]
setItem method convert the input to a string before storing it.

Try this :

// 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));

You can easily store values in localstorage using following example.

//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"

localStorage saves item key&value as string,so you call setItem with an object/json object,you must serialize json to string by JSON.stringify() method.when you get value you need parse string as json object using JSON.parse() method.

Test

test(`can't retrieve json from localStorage if raw json data saved`, () => {
    localStorage.setItem('foo', {foo: 'bar'});

    expect(localStorage.getItem('foo')).toEqual('[object Object]');
});

test(`retrieve json value as string from localStorage`, () => {
    localStorage.setItem('foo', JSON.stringify({foo: 'bar'}));

    let json = JSON.parse(localStorage.getItem('foo'));

    expect(json.foo).toEqual('bar');
});

test(`key also be serialized`, () => {
    localStorage.setItem({foo: 'bar'}, 'value');

    expect(localStorage.getItem('[object Object]')).toEqual('value');
});

test('supports bracket access notation `[]`', () => {
    localStorage.setItem('foo', 'bar');


    expect(localStorage['foo']).toEqual('bar');
});

test('supports dot accessor notation `.`', () => {
    localStorage.setItem('foo', 'bar');


    expect(localStorage.foo).toEqual('bar');
});
发布评论

评论列表(0)

  1. 暂无评论