我只是构建了一个 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);
解决方案
我试图在控制台中添加存储...当我在我的脚本中使用它时,它什么也没返回!抱歉
最佳答案
setItem
和 removeItem
不返回任何值。因此你得到 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/