javascript - sessionstorage 有效,但在控制台中返回 "undefined"。为什么?

标签 javascript jquery session-storage

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

当我添加

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

或删除

sessionStorage.removeItem('test');

一个项目,我总是在 console.log 中得到一个 undefined

但它做了我应该做的。

我怎样才能摆脱未定义的,有什么想法吗???

我试过的是

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

以为这会将它打印到一个 var 但它不会 ^^

我的代码:

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

解决方案

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

最佳答案

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

Reference , 这是上述方法的函数符号

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

This public method stores data via specified key. Please note that if key was already stored, it will overwrite it. Another thing to consider is that if we store a key, and via sessionStorage.key(0) we obtain that key, then we store another key/data and finally we store again the first key, sessionStorage.key(0) will return the second key/data stored, and not the first one.

removeItem(key:string):void

This public method simply removes a key and related data from the storage.

关于javascript - sessionstorage 有效,但在控制台中返回 "undefined"。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23514498/

相关文章:

javascript - 将目录中的下划线模板连接到单个 js 文件并加载它以与主干应用程序一起使用

javascript - 添加图像时重叠同位素图像

jquery - 如何在没有水平滚动的情况下在 Bootstrap 中适应视频 100 宽度 100 高度

javascript - 为什么sessionStorage中没有逻辑顺序?

jquery - sessionStorage 工作但需要 cookie

javascript - 如何在保持数据状态有序的同时保持接收数据?

Javascript 函数语法

jQuery:如何为居中的 div 设置动画以在其仍居中时填充屏幕?

javascript - JS中如何在回调迭代时显示不同的内容

javascript - 更新 sessionStorage 对象上的值