sessionstorage工作但返回" undefined"在控制台。为什么?

时间:2014-05-07 09:55:25

标签: javascript jquery session-storage

我只是构建了一个jquery插件来处理一些数据存储。 当我尝试从存储中读取时,结果是读取项目数据。现在很好......

当我添加

sessionStorage.setItem('test','some data');

或删除

sessionStorage.removeItem('test');

项目,我总是在undefined

中获得console.log

但它应该做我应该做的事。

我怎样才能摆脱未定义的,任何想法???

我试过的是

var result = sessionStorage.setItem('test','some data');

认为这会将它打印到var但它赢了<^ t ^^

我的代码:

(function ($) {

    $.storage = {

        add: function(name,value){

            if(typeof value === 'object' )
            {   
                /** convert object to json **/
                value = JSON.stringify(value);
            }
            /** add to storage **/
            sessionStorage.setItem(name,value);
        },

        read: function(name){

            /** read from storage **/
            var item = sessionStorage.getItem(name);
                try {
                    item = $.parseJSON(item);
                }catch(e){}
            return item;
        },

        remove: function(name){
            /** delete from storage **/
            sessionStorage.removeItem(name);
        },

        clear: function(){
            /** clear storage **/
            sessionStorage.clear();
        }

    }
})(jQuery);

我试图在控制台中添加存储...当我在我的脚本中使用它时它什么也没有返回! SORRY

2 个答案:

答案 0 :(得分:3)

setItemremoveItem不会返回任何值。因此,你得到undefined。另请注意removeItem只接受一个参数。

Reference,这是上述方法的功能标志

setItem(key:string,data:string):void

  

此公共方法通过指定密钥存储数据。请注意,如果密钥已存储,则会覆盖密钥。另一件需要考虑的事情是,如果我们存储一个密钥,并通过sessionStorage.key(0)我们获取该密钥,然后我们存储另一个密钥/数据,最后我们再次存储第一个密钥,sessionStorage.key(0)将返回存储第二个密钥/数据,而不是第一个。

<强>的removeItem(键:字符串):无效

  

此公共方法只是从存储中删除密钥和相关数据。

答案 1 :(得分:2)

var result = sessionStorage.setItem('test','some data');

不会返回任何内容。

sessionStorage.setItem('test','some data');

将值赋给'test',因此右侧没有任何值。 你想要的是

sessionStorage.setItem('test','some data');
var result = sessionStorage.getItem('test'); //<- here the right hand side is 'some data'