我只是构建了一个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
答案 0 :(得分:3)
setItem
和removeItem
不会返回任何值。因此,你得到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'